├── preview.png
├── assets
├── img
│ ├── about.jpg
│ ├── perfil.png
│ ├── work1.jpg
│ ├── work2.jpg
│ ├── work3.jpg
│ ├── work4.jpg
│ ├── work5.jpg
│ └── work6.jpg
├── js
│ └── main.js
├── css
│ └── styles.css
└── scss
│ └── styles.scss
├── README.md
└── index.html
/preview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bedimcode/portfolio-responsive-complete/HEAD/preview.png
--------------------------------------------------------------------------------
/assets/img/about.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bedimcode/portfolio-responsive-complete/HEAD/assets/img/about.jpg
--------------------------------------------------------------------------------
/assets/img/perfil.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bedimcode/portfolio-responsive-complete/HEAD/assets/img/perfil.png
--------------------------------------------------------------------------------
/assets/img/work1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bedimcode/portfolio-responsive-complete/HEAD/assets/img/work1.jpg
--------------------------------------------------------------------------------
/assets/img/work2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bedimcode/portfolio-responsive-complete/HEAD/assets/img/work2.jpg
--------------------------------------------------------------------------------
/assets/img/work3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bedimcode/portfolio-responsive-complete/HEAD/assets/img/work3.jpg
--------------------------------------------------------------------------------
/assets/img/work4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bedimcode/portfolio-responsive-complete/HEAD/assets/img/work4.jpg
--------------------------------------------------------------------------------
/assets/img/work5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bedimcode/portfolio-responsive-complete/HEAD/assets/img/work5.jpg
--------------------------------------------------------------------------------
/assets/img/work6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bedimcode/portfolio-responsive-complete/HEAD/assets/img/work6.jpg
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Portfolio Responsive Complete
2 | ## [Watch it on youtube](https://youtu.be/AKNvTxWOdKw)
3 | ### Portfolio Responsive Complete
4 |
5 | - Responsive Personal Portfolio Website HTML CSS & JavaScript.
6 | - Contains animations when scrolling.
7 | - Smooth scrolling in each section.
8 | - Developed first with the Mobile First methodology, then for desktop.
9 | - Compatible with all mobile devices and with a beautiful and pleasant user interface.
10 |
11 | 💙 Join the channel to see more videos like this. [Bedimcode](https://www.youtube.com/@Bedimcode)
12 |
13 | 
14 |
15 |
--------------------------------------------------------------------------------
/assets/js/main.js:
--------------------------------------------------------------------------------
1 | /*===== MENU SHOW =====*/
2 | const showMenu = (toggleId, navId) =>{
3 | const toggle = document.getElementById(toggleId),
4 | nav = document.getElementById(navId)
5 |
6 | if(toggle && nav){
7 | toggle.addEventListener('click', ()=>{
8 | nav.classList.toggle('show')
9 | })
10 | }
11 | }
12 | showMenu('nav-toggle','nav-menu')
13 |
14 | /*==================== REMOVE MENU MOBILE ====================*/
15 | const navLink = document.querySelectorAll('.nav__link')
16 |
17 | function linkAction(){
18 | const navMenu = document.getElementById('nav-menu')
19 | // When we click on each nav__link, we remove the show-menu class
20 | navMenu.classList.remove('show')
21 | }
22 | navLink.forEach(n => n.addEventListener('click', linkAction))
23 |
24 | /*==================== SCROLL SECTIONS ACTIVE LINK ====================*/
25 | const sections = document.querySelectorAll('section[id]')
26 |
27 | const scrollActive = () =>{
28 | const scrollDown = window.scrollY
29 |
30 | sections.forEach(current =>{
31 | const sectionHeight = current.offsetHeight,
32 | sectionTop = current.offsetTop - 58,
33 | sectionId = current.getAttribute('id'),
34 | sectionsClass = document.querySelector('.nav__menu a[href*=' + sectionId + ']')
35 |
36 | if(scrollDown > sectionTop && scrollDown <= sectionTop + sectionHeight){
37 | sectionsClass.classList.add('active-link')
38 | }else{
39 | sectionsClass.classList.remove('active-link')
40 | }
41 | })
42 | }
43 | window.addEventListener('scroll', scrollActive)
44 |
45 | /*===== SCROLL REVEAL ANIMATION =====*/
46 | const sr = ScrollReveal({
47 | origin: 'top',
48 | distance: '60px',
49 | duration: 2000,
50 | delay: 200,
51 | // reset: true
52 | });
53 |
54 | sr.reveal('.home__data, .about__img, .skills__subtitle, .skills__text',{});
55 | sr.reveal('.home__img, .about__subtitle, .about__text, .skills__img',{delay: 400});
56 | sr.reveal('.home__social-icon',{ interval: 200});
57 | sr.reveal('.skills__data, .work__img, .contact__input',{interval: 200});
58 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | Portfolio website complete
13 |
14 |
15 |
16 |
37 |
38 |
39 |
40 |
41 |
42 |
Hi, I'am Marlon Web Designer
43 |
44 |
Contact
45 |
46 |
47 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 | About
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
I'am Marlon
77 |
Lorem, ipsum dolor sit amet consectetur adipisicing elit. Voluptate cum expedita quo culpa tempora, assumenda, quis fugiat ut voluptates soluta, aut earum nemo recusandae cumque perferendis! Recusandae alias accusamus atque.
78 |
79 |
80 |
81 |
82 |
83 |
84 | Skills
85 |
86 |
87 |
88 |
Profesional Skills
89 |
Lorem ipsum dolor sit, amet consectetur adipisicing elit. Velit optio id vero amet, alias architecto consectetur error eum eaque sit.
90 |
91 |
92 |
93 | HTML5
94 |
95 |
96 |
97 |
98 |
99 | 95%
100 |
101 |
102 |
103 |
104 |
105 | CSS3
106 |
107 |
108 |
109 |
110 |
111 | 85%
112 |
113 |
114 |
115 |
116 |
117 | JAVASCRIPT
118 |
119 |
120 |
121 |
122 |
123 | 65%
124 |
125 |
126 |
127 |
128 |
129 | UX/UI
130 |
131 |
132 |
133 |
134 |
135 | 85%
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 | Work
149 |
150 |
170 |
171 |
172 |
173 |
185 |
186 |
187 |
188 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
--------------------------------------------------------------------------------
/assets/css/styles.css:
--------------------------------------------------------------------------------
1 | /*===== GOOGLE FONTS =====*/
2 | @import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;700&display=swap");
3 | /*===== VARIABLES CSS =====*/
4 | :root {
5 | --header-height: 3rem;
6 | --font-semi: 600;
7 | /*===== Colores =====*/
8 | /*Purple 260 - Red 355 - Blue 224 - Pink 340*/
9 | /* HSL color mode */
10 | --hue-color: 224;
11 | --first-color: hsl(var(--hue-color), 89%, 60%);
12 | --second-color: hsl(var(--hue-color), 56%, 12%);
13 | /*===== Fuente y tipografia =====*/
14 | --body-font: "Poppins", sans-serif;
15 | --big-font-size: 2rem;
16 | --h2-font-size: 1.25rem;
17 | --normal-font-size: .938rem;
18 | --smaller-font-size: .75rem;
19 | /*===== Margenes =====*/
20 | --mb-2: 1rem;
21 | --mb-4: 2rem;
22 | --mb-5: 2.5rem;
23 | --mb-6: 3rem;
24 | /*===== z index =====*/
25 | --z-back: -10;
26 | --z-fixed: 100;
27 | }
28 | @media screen and (min-width: 968px) {
29 | :root {
30 | --big-font-size: 3.5rem;
31 | --h2-font-size: 2rem;
32 | --normal-font-size: 1rem;
33 | --smaller-font-size: .875rem;
34 | }
35 | }
36 |
37 | /*===== BASE =====*/
38 | *, ::before, ::after {
39 | box-sizing: border-box;
40 | }
41 |
42 | html {
43 | scroll-behavior: smooth;
44 | }
45 |
46 | body {
47 | margin: var(--header-height) 0 0 0;
48 | font-family: var(--body-font);
49 | font-size: var(--normal-font-size);
50 | color: var(--second-color);
51 | }
52 |
53 | h1, h2, p {
54 | margin: 0;
55 | }
56 |
57 | ul {
58 | margin: 0;
59 | padding: 0;
60 | list-style: none;
61 | }
62 |
63 | a {
64 | text-decoration: none;
65 | }
66 |
67 | img {
68 | max-width: 100%;
69 | height: auto;
70 | display: block;
71 | }
72 |
73 | /*===== CLASS CSS ===== */
74 | .section-title {
75 | position: relative;
76 | font-size: var(--h2-font-size);
77 | color: var(--first-color);
78 | margin-top: var(--mb-2);
79 | margin-bottom: var(--mb-4);
80 | text-align: center;
81 | }
82 | .section-title::after {
83 | position: absolute;
84 | content: "";
85 | width: 64px;
86 | height: 0.18rem;
87 | left: 0;
88 | right: 0;
89 | margin: auto;
90 | top: 2rem;
91 | background-color: var(--first-color);
92 | }
93 |
94 | .section {
95 | padding-top: 3rem;
96 | padding-bottom: 2rem;
97 | }
98 |
99 | /*===== LAYOUT =====*/
100 | .bd-grid {
101 | max-width: 1024px;
102 | display: grid;
103 | margin-left: var(--mb-2);
104 | margin-right: var(--mb-2);
105 | }
106 |
107 | .l-header {
108 | width: 100%;
109 | position: fixed;
110 | top: 0;
111 | left: 0;
112 | z-index: var(--z-fixed);
113 | background-color: #fff;
114 | box-shadow: 0 1px 4px rgba(146, 161, 176, 0.15);
115 | }
116 |
117 | /*===== NAV =====*/
118 | .nav {
119 | height: var(--header-height);
120 | display: flex;
121 | justify-content: space-between;
122 | align-items: center;
123 | font-weight: var(--font-semi);
124 | }
125 | @media screen and (max-width: 767px) {
126 | .nav__menu {
127 | position: fixed;
128 | top: var(--header-height);
129 | right: -100%;
130 | width: 80%;
131 | height: 100%;
132 | padding: 2rem;
133 | background-color: var(--second-color);
134 | transition: 0.5s;
135 | }
136 | }
137 | .nav__item {
138 | margin-bottom: var(--mb-4);
139 | }
140 | .nav__link {
141 | position: relative;
142 | color: #fff;
143 | }
144 | .nav__link:hover {
145 | position: relative;
146 | }
147 | .nav__link:hover::after {
148 | position: absolute;
149 | content: "";
150 | width: 100%;
151 | height: 0.18rem;
152 | left: 0;
153 | top: 2rem;
154 | background-color: var(--first-color);
155 | }
156 | .nav__logo {
157 | color: var(--second-color);
158 | }
159 | .nav__toggle {
160 | color: var(--second-color);
161 | font-size: 1.5rem;
162 | cursor: pointer;
163 | }
164 |
165 | /*Active menu*/
166 | .active-link::after {
167 | position: absolute;
168 | content: "";
169 | width: 100%;
170 | height: 0.18rem;
171 | left: 0;
172 | top: 2rem;
173 | background-color: var(--first-color);
174 | }
175 |
176 | /*=== Show menu ===*/
177 | .show {
178 | right: 0;
179 | }
180 |
181 | /*===== HOME =====*/
182 | .home {
183 | position: relative;
184 | row-gap: 5rem;
185 | padding: 4rem 0 5rem;
186 | }
187 | .home__data {
188 | align-self: center;
189 | }
190 | .home__title {
191 | font-size: var(--big-font-size);
192 | margin-bottom: var(--mb-5);
193 | }
194 | .home__title-color {
195 | color: var(--first-color);
196 | }
197 | .home__social {
198 | display: flex;
199 | flex-direction: column;
200 | }
201 | .home__social-icon {
202 | width: max-content;
203 | margin-bottom: var(--mb-2);
204 | font-size: 1.5rem;
205 | color: var(--second-color);
206 | }
207 | .home__social-icon:hover {
208 | color: var(--first-color);
209 | }
210 | .home__img {
211 | position: absolute;
212 | right: 0;
213 | bottom: 0;
214 | width: 260px;
215 | }
216 | .home__blob {
217 | fill: var(--first-color);
218 | }
219 | .home__blob-img {
220 | width: 360px;
221 | }
222 |
223 | /*BUTTONS*/
224 | .button {
225 | display: inline-block;
226 | background-color: var(--first-color);
227 | color: #fff;
228 | padding: 0.75rem 2.5rem;
229 | font-weight: var(--font-semi);
230 | border-radius: 0.5rem;
231 | transition: 0.3s;
232 | }
233 | .button:hover {
234 | box-shadow: 0px 10px 36px rgba(0, 0, 0, 0.15);
235 | }
236 |
237 | /* ===== ABOUT =====*/
238 | .about__container {
239 | row-gap: 2rem;
240 | text-align: center;
241 | }
242 | .about__subtitle {
243 | margin-bottom: var(--mb-2);
244 | }
245 | .about__img {
246 | justify-self: center;
247 | }
248 | .about__img img {
249 | width: 200px;
250 | border-radius: 0.5rem;
251 | }
252 |
253 | /* ===== SKILLS =====*/
254 | .skills__container {
255 | row-gap: 2rem;
256 | text-align: center;
257 | }
258 | .skills__subtitle {
259 | margin-bottom: var(--mb-2);
260 | }
261 | .skills__text {
262 | margin-bottom: var(--mb-4);
263 | }
264 | .skills__data {
265 | display: flex;
266 | justify-content: space-between;
267 | align-items: center;
268 | position: relative;
269 | font-weight: var(--font-semi);
270 | padding: 0.5rem 1rem;
271 | margin-bottom: var(--mb-4);
272 | border-radius: 0.5rem;
273 | box-shadow: 0px 4px 25px rgba(14, 36, 49, 0.15);
274 | }
275 | .skills__icon {
276 | font-size: 2rem;
277 | margin-right: var(--mb-2);
278 | color: var(--first-color);
279 | }
280 | .skills__names {
281 | display: flex;
282 | align-items: center;
283 | }
284 | .skills__bar {
285 | position: absolute;
286 | left: 0;
287 | bottom: 0;
288 | background-color: var(--first-color);
289 | height: 0.25rem;
290 | border-radius: 0.5rem;
291 | z-index: var(--z-back);
292 | }
293 | .skills__html {
294 | width: 95%;
295 | }
296 | .skills__css {
297 | width: 85%;
298 | }
299 | .skills__js {
300 | width: 65%;
301 | }
302 | .skills__ux {
303 | width: 85%;
304 | }
305 | .skills__img {
306 | border-radius: 0.5rem;
307 | }
308 |
309 | /* ===== WORK =====*/
310 | .work__container {
311 | row-gap: 2rem;
312 | }
313 | .work__img {
314 | box-shadow: 0px 4px 25px rgba(14, 36, 49, 0.15);
315 | border-radius: 0.5rem;
316 | overflow: hidden;
317 | }
318 | .work__img img {
319 | transition: 1s;
320 | }
321 | .work__img img:hover {
322 | transform: scale(1.1);
323 | }
324 |
325 | /* ===== CONTACT =====*/
326 | .contact__input {
327 | width: 100%;
328 | font-size: var(--normal-font-size);
329 | font-weight: var(--font-semi);
330 | padding: 1rem;
331 | border-radius: 0.5rem;
332 | border: 1.5px solid var(--second-color);
333 | outline: none;
334 | margin-bottom: var(--mb-4);
335 | }
336 | .contact__button {
337 | display: block;
338 | border: none;
339 | outline: none;
340 | font-size: var(--normal-font-size);
341 | cursor: pointer;
342 | margin-left: auto;
343 | }
344 |
345 | /* ===== FOOTER =====*/
346 | .footer {
347 | background-color: var(--second-color);
348 | color: #fff;
349 | text-align: center;
350 | font-weight: var(--font-semi);
351 | padding: 2rem 0;
352 | }
353 | .footer__title {
354 | font-size: 2rem;
355 | margin-bottom: var(--mb-4);
356 | }
357 | .footer__social {
358 | margin-bottom: var(--mb-4);
359 | }
360 | .footer__icon {
361 | font-size: 1.5rem;
362 | color: #fff;
363 | margin: 0 var(--mb-2);
364 | }
365 | .footer__copy {
366 | font-size: var(--smaller-font-size);
367 | }
368 |
369 | /* ===== MEDIA QUERIES=====*/
370 | @media screen and (max-width: 320px) {
371 | .home {
372 | row-gap: 2rem;
373 | }
374 | .home__img {
375 | width: 200px;
376 | }
377 | }
378 | @media screen and (min-width: 576px) {
379 | .home {
380 | padding: 4rem 0 2rem;
381 | }
382 | .home__social {
383 | padding-top: 0;
384 | padding-bottom: 2.5rem;
385 | flex-direction: row;
386 | align-self: flex-end;
387 | }
388 | .home__social-icon {
389 | margin-bottom: 0;
390 | margin-right: var(--mb-4);
391 | }
392 | .home__img {
393 | width: 300px;
394 | bottom: 25%;
395 | }
396 | .about__container {
397 | grid-template-columns: repeat(2, 1fr);
398 | align-items: center;
399 | text-align: initial;
400 | }
401 | .skills__container {
402 | grid-template-columns: 0.7fr;
403 | justify-content: center;
404 | column-gap: 1rem;
405 | }
406 | .work__container {
407 | grid-template-columns: repeat(2, 1fr);
408 | column-gap: 2rem;
409 | padding-top: 2rem;
410 | }
411 | .contact__form {
412 | width: 360px;
413 | padding-top: 2rem;
414 | }
415 | .contact__container {
416 | justify-items: center;
417 | }
418 | }
419 | @media screen and (min-width: 768px) {
420 | body {
421 | margin: 0;
422 | }
423 | .section {
424 | padding-top: 4rem;
425 | padding-bottom: 3rem;
426 | }
427 | .section-title {
428 | margin-bottom: var(--mb-6);
429 | }
430 | .section-title::after {
431 | width: 80px;
432 | top: 3rem;
433 | }
434 | .nav {
435 | height: calc(var(--header-height) + 1.5rem);
436 | }
437 | .nav__list {
438 | display: flex;
439 | padding-top: 0;
440 | }
441 | .nav__item {
442 | margin-left: var(--mb-6);
443 | margin-bottom: 0;
444 | }
445 | .nav__toggle {
446 | display: none;
447 | }
448 | .nav__link {
449 | color: var(--second-color);
450 | }
451 | .home {
452 | padding: 8rem 0 2rem;
453 | }
454 | .home__img {
455 | width: 400px;
456 | bottom: 10%;
457 | }
458 | .about__container {
459 | padding-top: 2rem;
460 | }
461 | .about__img img {
462 | width: 300px;
463 | }
464 | .skills__container {
465 | grid-template-columns: repeat(2, 1fr);
466 | column-gap: 2rem;
467 | align-items: center;
468 | text-align: initial;
469 | }
470 | .work__container {
471 | grid-template-columns: repeat(3, 1fr);
472 | column-gap: 2rem;
473 | }
474 | }
475 | @media screen and (min-width: 992px) {
476 | .bd-grid {
477 | margin-left: auto;
478 | margin-right: auto;
479 | }
480 | .home {
481 | padding: 10rem 0 2rem;
482 | }
483 | .home__img {
484 | width: 450px;
485 | }
486 | }
--------------------------------------------------------------------------------
/assets/scss/styles.scss:
--------------------------------------------------------------------------------
1 | /*===== GOOGLE FONTS =====*/
2 | @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;700&display=swap');
3 |
4 | /*===== VARIABLES CSS =====*/
5 | :root{
6 | --header-height: 3rem;
7 | --font-semi: 600;
8 |
9 | /*===== Colores =====*/
10 | /*Purple 260 - Red 355 - Blue 224 - Pink 340*/
11 | /* HSL color mode */
12 | --hue-color: 224;
13 | --first-color: hsl(var(--hue-color), 89%, 60%);
14 | --second-color: hsl(var(--hue-color), 56%, 12%);
15 |
16 | /*===== Fuente y tipografia =====*/
17 | --body-font: 'Poppins', sans-serif;
18 |
19 | --big-font-size: 2rem;
20 | --h2-font-size: 1.25rem;
21 | --normal-font-size: .938rem;
22 | --smaller-font-size: .75rem;
23 |
24 | /*===== Margenes =====*/
25 | --mb-2: 1rem;
26 | --mb-4: 2rem;
27 | --mb-5: 2.5rem;
28 | --mb-6: 3rem;
29 |
30 | /*===== z index =====*/
31 | --z-back: -10;
32 | --z-fixed: 100;
33 |
34 | @media screen and (min-width: 968px){
35 | --big-font-size: 3.5rem;
36 | --h2-font-size: 2rem;
37 | --normal-font-size: 1rem;
38 | --smaller-font-size: .875rem;
39 | }
40 | }
41 |
42 | /*===== BASE =====*/
43 | *,::before,::after{
44 | box-sizing: border-box;
45 | }
46 | html{
47 | scroll-behavior: smooth;
48 | }
49 | body{
50 | margin: var(--header-height) 0 0 0;
51 | font-family: var(--body-font);
52 | font-size: var(--normal-font-size);
53 | color: var(--second-color);
54 | }
55 | h1,h2,p{
56 | margin: 0;
57 | }
58 | ul{
59 | margin: 0;
60 | padding: 0;
61 | list-style: none;
62 | }
63 | a{
64 | text-decoration: none;
65 | }
66 | img{
67 | max-width: 100%;
68 | height: auto;
69 | display: block;
70 | }
71 |
72 | /*===== CLASS CSS ===== */
73 | .section-title{
74 | position: relative;
75 | font-size: var(--h2-font-size);
76 | color: var(--first-color);
77 | margin-top: var(--mb-2);
78 | margin-bottom: var(--mb-4);
79 | text-align: center;
80 |
81 | &::after{
82 | position: absolute;
83 | content: '';
84 | width: 64px;
85 | height: 0.18rem;
86 | left: 0;
87 | right: 0;
88 | margin: auto;
89 | top: 2rem;
90 | background-color: var(--first-color);
91 | }
92 | }
93 | .section{
94 | padding-top: 3rem;
95 | padding-bottom: 2rem;
96 | }
97 |
98 | /*===== LAYOUT =====*/
99 | .bd-grid{
100 | max-width: 1024px;
101 | display: grid;
102 | margin-left: var(--mb-2);
103 | margin-right: var(--mb-2);
104 | }
105 | .l-header{
106 | width: 100%;
107 | position: fixed;
108 | top: 0;
109 | left: 0;
110 | z-index: var(--z-fixed);
111 | background-color: #fff;
112 | box-shadow: 0 1px 4px rgba(146,161,176,.15);
113 | }
114 |
115 | /*===== NAV =====*/
116 | .nav{
117 | height: var(--header-height);
118 | display: flex;
119 | justify-content: space-between;
120 | align-items: center;
121 | font-weight: var(--font-semi);
122 |
123 | &__menu{
124 | @media screen and (max-width: 767px){
125 | position: fixed;
126 | top: var(--header-height);
127 | right: -100%;
128 | width: 80%;
129 | height: 100%;
130 | padding: 2rem;
131 | background-color: var(--second-color);
132 | transition: .5s;
133 | }
134 | }
135 | &__item{
136 | margin-bottom: var(--mb-4);
137 | }
138 | &__link{
139 | position: relative;
140 | color: #fff;
141 |
142 | &:hover{
143 | position: relative;
144 |
145 | &::after{
146 | position: absolute;
147 | content: '';
148 | width: 100%;
149 | height: 0.18rem;
150 | left: 0;
151 | top: 2rem;
152 | background-color: var(--first-color);
153 | }
154 | }
155 | }
156 | &__logo{
157 | color: var(--second-color);
158 | }
159 | &__toggle{
160 | color: var(--second-color);
161 | font-size: 1.5rem;
162 | cursor: pointer;
163 | }
164 | }
165 | /*Active menu*/
166 | .active-link::after{
167 | position: absolute;
168 | content: '';
169 | width: 100%;
170 | height: 0.18rem;
171 | left: 0;
172 | top: 2rem;
173 | background-color: var(--first-color);
174 | }
175 |
176 | /*=== Show menu ===*/
177 | .show{
178 | right: 0;
179 | }
180 |
181 | /*===== HOME =====*/
182 | .home{
183 | position: relative;
184 | row-gap: 5rem;
185 | padding: 4rem 0 5rem;
186 |
187 | &__data{
188 | align-self: center;
189 | }
190 | &__title{
191 | font-size: var(--big-font-size);
192 | margin-bottom: var(--mb-5);
193 |
194 | &-color{
195 | color: var(--first-color);
196 | }
197 | }
198 | &__social{
199 | display: flex;
200 | flex-direction: column;
201 | &-icon{
202 | width: max-content;
203 | margin-bottom: var(--mb-2);
204 | font-size: 1.5rem;
205 | color: var(--second-color);
206 |
207 | &:hover{
208 | color: var(--first-color);
209 | }
210 | }
211 | }
212 |
213 | &__img{
214 | position: absolute;
215 | right: 0;
216 | bottom: 0;
217 | width: 260px;
218 | }
219 | &__blob{
220 | fill: var(--first-color);
221 |
222 | &-img{
223 | width: 360px;
224 | }
225 | }
226 | }
227 |
228 | /*BUTTONS*/
229 | .button{
230 | display: inline-block;
231 | background-color: var(--first-color);
232 | color: #fff;
233 | padding: .75rem 2.5rem;
234 | font-weight: var(--font-semi);
235 | border-radius: .5rem;
236 | transition: .3s;
237 |
238 | &:hover{
239 | box-shadow: 0px 10px 36px rgba(0,0,0,.15);
240 | }
241 | }
242 |
243 | /* ===== ABOUT =====*/
244 | .about{
245 | &__container{
246 | row-gap: 2rem;
247 | text-align: center;
248 | }
249 | &__subtitle{
250 | margin-bottom: var(--mb-2);
251 | }
252 |
253 | &__img{
254 | justify-self: center;
255 |
256 | & img{
257 | width: 200px;
258 | border-radius: .5rem;
259 | }
260 | }
261 | }
262 |
263 | /* ===== SKILLS =====*/
264 | .skills{
265 | &__container{
266 | row-gap: 2rem;
267 | text-align: center;
268 | }
269 | &__subtitle{
270 | margin-bottom: var(--mb-2);
271 | }
272 | &__text{
273 | margin-bottom: var(--mb-4);
274 | }
275 | &__data{
276 | display: flex;
277 | justify-content: space-between;
278 | align-items: center;
279 | position: relative;
280 | font-weight: var(--font-semi);
281 | padding: .5rem 1rem;
282 | margin-bottom: var(--mb-4);
283 | border-radius: .5rem;
284 | box-shadow: 0px 4px 25px rgba(14, 36, 49, 0.15);
285 | }
286 | &__icon{
287 | font-size: 2rem;
288 | margin-right: var(--mb-2);
289 | color: var(--first-color);
290 | }
291 | &__names{
292 | display: flex;
293 | align-items: center;
294 | }
295 | &__bar{
296 | position: absolute;
297 | left: 0;
298 | bottom: 0;
299 | background-color: var(--first-color);
300 | height: .25rem;
301 | border-radius: .5rem;
302 | z-index: var(--z-back);
303 | }
304 | &__html{
305 | width: 95%;
306 | }
307 | &__css{
308 | width: 85%;
309 | }
310 | &__js{
311 | width: 65%;
312 | }
313 | &__ux{
314 | width: 85%;
315 | }
316 | &__img{
317 | border-radius: .5rem;
318 | }
319 | }
320 | /* ===== WORK =====*/
321 | .work{
322 | &__container{
323 | row-gap: 2rem;
324 | }
325 | &__img{
326 | box-shadow: 0px 4px 25px rgba(14, 36, 49, 0.15);
327 | border-radius: .5rem;
328 | overflow: hidden;
329 |
330 | & img{
331 | transition: 1s;
332 |
333 | &:hover{
334 | transform: scale(1.1);
335 | }
336 | }
337 | }
338 | }
339 |
340 | /* ===== CONTACT =====*/
341 | .contact{
342 | &__input{
343 | width: 100%;
344 | font-size: var(--normal-font-size);
345 | font-weight: var(--font-semi);
346 | padding: 1rem;
347 | border-radius: .5rem;
348 | border: 1.5px solid var(--second-color);
349 | outline: none;
350 | margin-bottom: var(--mb-4);
351 | }
352 | &__button{
353 | display: block;
354 | border: none;
355 | outline: none;
356 | font-size: var(--normal-font-size);
357 | cursor: pointer;
358 | margin-left: auto;
359 | }
360 | }
361 |
362 | /* ===== FOOTER =====*/
363 | .footer{
364 | background-color: var(--second-color);
365 | color: #fff;
366 | text-align: center;
367 | font-weight: var(--font-semi);
368 | padding: 2rem 0;
369 |
370 | &__title{
371 | font-size: 2rem;
372 | margin-bottom: var(--mb-4);
373 | }
374 | &__social{
375 | margin-bottom: var(--mb-4);
376 | }
377 | &__icon{
378 | font-size: 1.5rem;
379 | color: #fff;
380 | margin: 0 var(--mb-2);
381 | }
382 | &__copy{
383 | font-size: var(--smaller-font-size);
384 | }
385 | }
386 |
387 | /* ===== MEDIA QUERIES=====*/
388 | @media screen and (max-width: 320px){
389 | .home{
390 | row-gap: 2rem;
391 |
392 | &__img{
393 | width: 200px;
394 | }
395 | }
396 | }
397 |
398 | @media screen and (min-width: 576px){
399 | .home{
400 | padding: 4rem 0 2rem;
401 | &__social{
402 | padding-top: 0;
403 | padding-bottom: 2.5rem;
404 | flex-direction: row;
405 | align-self: flex-end;
406 |
407 | &-icon{
408 | margin-bottom: 0;
409 | margin-right: var(--mb-4);
410 | }
411 | }
412 | &__img{
413 | width: 300px;
414 | bottom: 25%;
415 | }
416 | }
417 |
418 | .about__container{
419 | grid-template-columns: repeat(2,1fr);
420 | align-items: center;
421 | text-align: initial;
422 | }
423 |
424 | .skills__container{
425 | grid-template-columns: .7fr;
426 | justify-content: center;
427 | column-gap: 1rem;
428 | }
429 |
430 | .work__container{
431 | grid-template-columns: repeat(2,1fr);
432 | column-gap: 2rem;
433 | padding-top: 2rem;
434 | }
435 |
436 | .contact{
437 | &__form{
438 | width: 360px;
439 | padding-top: 2rem ;
440 | }
441 | &__container{
442 | justify-items: center;
443 | }
444 | }
445 | }
446 |
447 | @media screen and (min-width: 768px){
448 | body{
449 | margin: 0;
450 | }
451 | .section{
452 | padding-top: 4rem;
453 | padding-bottom: 3rem;
454 | }
455 |
456 | .section-title{
457 | margin-bottom: var(--mb-6);
458 |
459 | &::after{
460 | width: 80px;
461 | top: 3rem;
462 | }
463 | }
464 |
465 | .nav{
466 | height: calc(var(--header-height) + 1.5rem);
467 | &__list{
468 | display: flex;
469 | padding-top: 0;
470 | }
471 | &__item{
472 | margin-left: var(--mb-6);
473 | margin-bottom: 0;
474 | }
475 | &__toggle{
476 | display: none;
477 | }
478 | &__link{
479 | color: var(--second-color);
480 | }
481 | }
482 | .home{
483 | padding: 8rem 0 2rem;
484 |
485 | &__img{
486 | width: 400px;
487 | bottom: 10%;
488 | }
489 | }
490 |
491 | .about{
492 | &__container{
493 | padding-top: 2rem;
494 | }
495 | &__img{
496 | & img{
497 | width: 300px;
498 | }
499 | }
500 | }
501 | .skills__container{
502 | grid-template-columns: repeat(2,1fr);
503 | column-gap: 2rem;
504 | align-items: center;
505 | text-align: initial;
506 | }
507 | .work__container{
508 | grid-template-columns: repeat(3,1fr);
509 | column-gap: 2rem;
510 | }
511 | }
512 |
513 | @media screen and (min-width: 992px){
514 | .bd-grid{
515 | margin-left: auto;
516 | margin-right: auto;
517 | }
518 | .home{
519 | padding: 10rem 0 2rem;
520 |
521 | &__img{
522 | width: 450px;
523 | }
524 | }
525 | }
526 |
--------------------------------------------------------------------------------