├── img
├── about.png
├── perfil.png
├── work1.png
├── work2.png
├── work3.png
├── work4.png
├── work5.png
├── work6.png
├── work7.png
├── projectmind.png
└── Javohir's Resume.pdf
├── sass
├── abstact
│ ├── _mixins.scss
│ └── _variables.scss
├── base
│ └── _base.scss
├── layout
│ ├── _footer.scss
│ ├── _header.scss
│ └── index.scss
└── main.scss
├── js
└── main.js
├── css
├── main.css.map
└── main.css
└── index.html
/img/about.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/javohirveb/harris-portfolio/HEAD/img/about.png
--------------------------------------------------------------------------------
/img/perfil.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/javohirveb/harris-portfolio/HEAD/img/perfil.png
--------------------------------------------------------------------------------
/img/work1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/javohirveb/harris-portfolio/HEAD/img/work1.png
--------------------------------------------------------------------------------
/img/work2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/javohirveb/harris-portfolio/HEAD/img/work2.png
--------------------------------------------------------------------------------
/img/work3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/javohirveb/harris-portfolio/HEAD/img/work3.png
--------------------------------------------------------------------------------
/img/work4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/javohirveb/harris-portfolio/HEAD/img/work4.png
--------------------------------------------------------------------------------
/img/work5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/javohirveb/harris-portfolio/HEAD/img/work5.png
--------------------------------------------------------------------------------
/img/work6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/javohirveb/harris-portfolio/HEAD/img/work6.png
--------------------------------------------------------------------------------
/img/work7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/javohirveb/harris-portfolio/HEAD/img/work7.png
--------------------------------------------------------------------------------
/img/projectmind.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/javohirveb/harris-portfolio/HEAD/img/projectmind.png
--------------------------------------------------------------------------------
/img/Javohir's Resume.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/javohirveb/harris-portfolio/HEAD/img/Javohir's Resume.pdf
--------------------------------------------------------------------------------
/sass/abstact/_mixins.scss:
--------------------------------------------------------------------------------
1 | @mixin media-sm {
2 | @media screen and (min-width: 576px) {
3 | @content;
4 | }
5 | }
6 |
7 | @mixin media-md {
8 | @media screen and (min-width: 768px) {
9 | @content;
10 | }
11 | }
12 |
13 | @mixin media-lg {
14 | @media screen and (min-width: 992px) {
15 | @content;
16 | }
17 | }
18 |
19 | @mixin media-xl {
20 | @media screen and (min-width: 1024px) {
21 | @content;
22 | }
23 | }
--------------------------------------------------------------------------------
/sass/abstact/_variables.scss:
--------------------------------------------------------------------------------
1 | @use 'mixins';
2 |
3 | $header-height: 3rem;
4 | $nav-width: 324px;
5 |
6 | $font-medium: 500;
7 | $font-semi-bold: 600;
8 | $font-bold: 700;
9 |
10 | $first-color: #cc4b2c;
11 | $first-color-dark: #662616;
12 | $first-color-darken: #290f09;
13 | $text-color: #54423d;
14 | $text-color-light: #eae7e6;
15 | $first-color-lighten: #fffafa;
16 |
17 | $body-font: 'Poppins', sans-serif;
18 | $h1-font-size: 1.5rem;
19 | $h2-font-size: 1.25rem;
20 | $h3-font-size: 1rem;
21 | $normal-font-size: .938rem;
22 | $small-font-size: 0.813rem;
23 | $smaller-font-size: .75rem;
24 |
25 | $mb-1: .5rem;
26 | $mb-2: 1rem;
27 | $mb-3: 1.5rem;
28 | $mb-4: 2rem;
29 | $mb-5: 2.5rem;
30 |
31 | $z-fixed: 100;
32 |
33 | @include mixins.media-md {
34 | $h1-font-size: 2.25rem;
35 | $h2-font-size: 1.5rem;
36 | $h3-font-size: 1.25rem;
37 | $normal-font-size: 1rem;
38 | $small-font-size: 0.875rem;
39 | $smaller-font-size: .813rem;
40 | }
--------------------------------------------------------------------------------
/sass/base/_base.scss:
--------------------------------------------------------------------------------
1 | @use '../abstact/mixins';
2 | @use '../abstact/variables' as vars;
3 |
4 | /*===== BASE =====*/
5 | *,
6 | ::before,
7 | ::after {
8 | box-sizing: border-box;
9 | }
10 |
11 | html {
12 | scroll-behavior: smooth;
13 | }
14 |
15 | body {
16 | margin: vars.$header-height 0 0 0;
17 | font-family: vars.$body-font;
18 | font-size: vars.$normal-font-size;
19 | font-weight: vars.$font-medium;
20 | background-color: vars.$first-color-lighten;
21 | color: vars.$text-color;
22 | line-height: 1.6;
23 | }
24 |
25 | h1,
26 | h2,
27 | h3,
28 | p {
29 | margin: 0;
30 | }
31 |
32 | h3 {
33 | font-weight: vars.$font-semi-bold;
34 | }
35 |
36 | ul {
37 | margin: 0;
38 | padding: 0;
39 | list-style: none;
40 | }
41 |
42 | a {
43 | text-decoration: none;
44 | color: vars.$text-color;
45 | }
46 |
47 | img {
48 | height: auto;
49 | display: block;
50 | }
51 |
52 | ::-webkit-scrollbar {
53 | width: 12px;
54 | &-thumb {
55 | background: vars.$first-color;
56 | border-radius: 10px;
57 | &:hover {
58 | background: vars.$first-color-dark;
59 | }
60 | }
61 | }
62 |
63 | @include mixins.media-xl {
64 | body {
65 | margin: 0;
66 | padding-left: vars.$nav-width;
67 | }
68 | }
--------------------------------------------------------------------------------
/js/main.js:
--------------------------------------------------------------------------------
1 | /*===== MENU SHOW Y HIDDEN =====*/
2 | const navMenu = document.getElementById('nav-menu'),
3 | toggleMenu = document.getElementById('nav-toggle'),
4 | closeMenu = document.getElementById('nav-close')
5 |
6 | // SHOW
7 | toggleMenu.addEventListener('click', () => {
8 | navMenu.classList.toggle('show')
9 | })
10 |
11 | // HIDDEN
12 | closeMenu.addEventListener('click', () => {
13 | navMenu.classList.remove('show')
14 | })
15 |
16 | /*===== ACTIVE AND REMOVE MENU =====*/
17 | const navLink = document.querySelectorAll('.nav__link')
18 |
19 | function linkAction() {
20 | navMenu.classList.remove('show')
21 | }
22 | navLink.forEach(n => n.addEventListener('click', linkAction))
23 |
24 | /*===== SCROLL SECTIONS ACTIVE LINK =====*/
25 | const section = document.querySelectorAll('section[id]')
26 |
27 | window.addEventListener('scroll', scrollActive)
28 |
29 | function scrollActive() {
30 | const scrollY = window.pageYOffset
31 |
32 | section.forEach(current => {
33 | const sectionHeight = current.offsetHeight
34 | const sectionTap = current.offsetTop - 50
35 | sectionId = current.getAttribute('id')
36 |
37 | if (scrollY > sectionTap && scrollY <= sectionTap + sectionHeight) {
38 | document.querySelector('.nav__menu a[href*=' + sectionId + ']').classList.add('active')
39 | } else {
40 | document.querySelector('.nav__menu a[href*=' + sectionId + ']').classList.remove('active')
41 | }
42 | })
43 | }
--------------------------------------------------------------------------------
/sass/layout/_footer.scss:
--------------------------------------------------------------------------------
1 | @use '../abstact/variables' as vars;
2 | @use '../abstact/mixins';
3 |
4 | /* ===== FOOTER =====*/
5 | .footer {
6 | background-color: vars.$first-color-darken;
7 | color: vars.$first-color-lighten;
8 | text-align: center;
9 |
10 | &__title {
11 | font-size: vars.$h1-font-size;
12 | margin-bottom: vars.$mb-2;
13 | }
14 |
15 | &__description {
16 | margin-bottom: vars.$mb-2;
17 | }
18 |
19 | &__social {
20 | margin-bottom: 3rem;
21 | }
22 |
23 | &__link {
24 | display: inline-flex;
25 | background-color: vars.$first-color;
26 | color: vars.$first-color-lighten;
27 | font-size: 1.1rem;
28 | border-radius: 50%;
29 | padding: 0.4rem;
30 | margin: 0 vars.$mb-1;
31 | transition: .3s;
32 |
33 | &:hover {
34 | background-color: vars.$first-color-lighten;
35 | color: vars.$first-color;
36 | }
37 | }
38 |
39 | &__copy {
40 | font-size: vars.$smaller-font-size;
41 | color: vars.$text-color;
42 |
43 | a {
44 | transition: .4s;
45 |
46 | &:hover {
47 | color: vars.$first-color-lighten;
48 | }
49 | }
50 | }
51 | }
52 |
53 | @include mixins.media-md {
54 | .footer {
55 | background: none;
56 | &__container {
57 | background-color: vars.$first-color-darken;
58 | padding: 3rem;
59 | border-radius: 0.5rem;
60 | }
61 | }
62 | }
--------------------------------------------------------------------------------
/sass/layout/_header.scss:
--------------------------------------------------------------------------------
1 | @use '../abstact/mixins';
2 | @use '../abstact/variables' as vars;
3 |
4 | /*===== NAV =====*/
5 | .nav {
6 | height: vars.$header-height;
7 | display: flex;
8 | justify-content: space-between;
9 | align-items: center;
10 | width: calc(100% - 2rem);
11 | margin-left: vars.$mb-2;
12 | margin-right: vars.$mb-2;
13 | max-width: 1024px;
14 |
15 | &__menu {
16 | position: fixed;
17 | top: 0;
18 | left: -100%;
19 | width: 100%;
20 | height: 100vh;
21 | padding: 3rem;
22 | display: flex;
23 | align-items: center;
24 | justify-content: center;
25 | background-color: vars.$first-color;
26 | transition: .5s;
27 | }
28 |
29 | &__close {
30 | position: absolute;
31 | top: 1rem;
32 | right: 1rem;
33 | font-size: 2rem;
34 | color: vars.$first-color-lighten;
35 | cursor: pointer;
36 | }
37 |
38 | &__item {
39 | margin-bottom: vars.$mb-4;
40 | }
41 |
42 | &__link {
43 | font-size: 1rem;
44 | text-transform: uppercase;
45 | color: vars.$first-color-lighten;
46 | font-weight: vars.$font-bold;
47 | transition: .3s;
48 |
49 | &:hover {
50 | color: vars.$text-color;
51 | }
52 | }
53 |
54 | &__toggle {
55 | color: vars.$first-color-dark;
56 | font-size: 1.3rem;
57 | cursor: pointer;
58 | }
59 | }
60 |
61 |
62 | @include mixins.media-xl {
63 | .nav {
64 | &__close {
65 | display: none;
66 | }
67 |
68 | &__menu {
69 | left: 0;
70 | }
71 | }
72 | }
--------------------------------------------------------------------------------
/sass/layout/index.scss:
--------------------------------------------------------------------------------
1 | @use "header";
2 | @use "footer";
3 | @use '../abstact/variables' as vars;
4 | @use '../abstact/mixins';
5 |
6 | /*===== CLASS CSS ===== */
7 | .section {
8 | padding: 4rem 0 2rem;
9 |
10 | &-title {
11 | font-size: vars.$h1-font-size;
12 | color: vars.$first-color;
13 | margin-bottom: vars.$mb-3;
14 | text-align: center;
15 | }
16 |
17 | &-subtitle {
18 | display: block;
19 | font-size: vars.$small-font-size;
20 | color: vars.$first-color-darken;
21 | text-align: center;
22 | font-weight: vars.$font-bold;
23 | margin-bottom: .25rem;
24 | }
25 | }
26 |
27 | /*===== LAYOUT =====*/
28 | .bd-grid {
29 | max-width: 1024px;
30 | display: grid;
31 | grid-template-columns: 100%;
32 | column-gap: 2rem;
33 | width: calc(100% - 2rem);
34 | margin-left: vars.$mb-2;
35 | margin-right: vars.$mb-2;
36 | }
37 |
38 | .l-header {
39 | width: 100%;
40 | position: fixed;
41 | top: 0;
42 | left: 0;
43 | z-index: vars.$z-fixed;
44 | background-color: vars.$first-color-lighten;
45 | box-shadow: 0 2px 4px rgba(0, 0, 0, .1);
46 | }
47 |
48 | /*=== Show menu ===*/
49 | .show {
50 | left: 0;
51 | }
52 |
53 | /*Active menu*/
54 | .active {
55 | color: vars.$text-color;
56 | margin-left: vars.$mb-2;
57 | }
58 |
59 | @include mixins.media-xl {
60 | .l-header {
61 | width: 0;
62 | }
63 |
64 | .section {
65 | padding: 3rem 0 2rem;
66 | }
67 |
68 | .bd-grid {
69 | margin-left: auto;
70 | margin-right: auto;
71 | }
72 | }
--------------------------------------------------------------------------------
/css/main.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sourceRoot":"","sources":["../sass/base/_base.scss","../sass/abstact/_variables.scss","../sass/abstact/_mixins.scss","../sass/layout/_header.scss","../sass/layout/_footer.scss","../sass/layout/index.scss","../sass/main.scss"],"names":[],"mappings":"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","file":"main.css"}
--------------------------------------------------------------------------------
/sass/main.scss:
--------------------------------------------------------------------------------
1 | @use 'abstact/mixins';
2 | @use 'abstact/variables' as vars;
3 | @use 'base/base';
4 | @use 'layout/index.scss';
5 |
6 | /*===== HOME =====*/
7 | .home {
8 | &__container {
9 | height: calc(100vh - vars.$header-height);
10 | align-items: center;
11 | }
12 |
13 | &__data {
14 | display: flex;
15 | flex-direction: column;
16 | align-items: center;
17 | height: max-content;
18 | text-align: center;
19 | }
20 |
21 | &__img {
22 | padding-top: 1.3rem;
23 | padding-left: 0.8rem;
24 | width: 160px;
25 | height: 160px;
26 | background-color: vars.$first-color;
27 | border-radius: 50%;
28 | overflow: hidden;
29 | margin-bottom: vars.$mb-2;
30 |
31 | img {
32 | width: 155px;
33 | }
34 | }
35 |
36 | &__title {
37 | font-size: vars.$h1-font-size;
38 | color: vars.$first-color;
39 | font-weight: vars.$font-semi-bold;
40 | }
41 |
42 | &__profession {
43 | font-size: vars.$small-font-size;
44 | color: vars.$first-color-dark;
45 | margin-bottom: vars.$mb-5;
46 | }
47 |
48 | &__social {
49 | margin-bottom: 5rem;
50 |
51 | &-link {
52 | display: inline-flex;
53 | background-color: vars.$first-color;
54 | color: vars.$first-color-lighten;
55 | font-size: 1.1rem;
56 | border-radius: 50%;
57 | padding: 0.4rem;
58 | margin: 0 vars.$mb-1;
59 | transition: .3s;
60 |
61 | &:hover {
62 | background-color: vars.$first-color-dark;
63 | }
64 | }
65 | }
66 |
67 | &__button {
68 | width: 100%;
69 | }
70 | }
71 |
72 |
73 | /*BUTTONS*/
74 | .button {
75 | display: inline-block;
76 | background-color: vars.$first-color;
77 | color: vars.$first-color-lighten;
78 | padding: 1rem 2rem;
79 | font-weight: vars.$font-semi-bold;
80 | border-radius: .5rem;
81 | transition: .3s;
82 |
83 | &:hover {
84 | background-color: vars.$first-color-dark;
85 | }
86 |
87 | &__light {
88 | background-color: vars.$first-color-lighten;
89 | color: vars.$first-color;
90 |
91 | &:hover {
92 | color: vars.$first-color-lighten;
93 | }
94 | }
95 | }
96 |
97 |
98 | /* ===== ABOUT =====*/
99 | .about {
100 | &__container {
101 | row-gap: 2rem;
102 | }
103 |
104 | &__data {
105 | text-align: center;
106 | }
107 |
108 | &__description {
109 | margin-bottom: vars.$mb-4;
110 | }
111 |
112 | &__img {
113 | width: 220px;
114 | border-radius: 0.5rem;
115 | margin: 0 auto;
116 | }
117 |
118 | &__information {
119 | margin-bottom: vars.$mb-4;
120 |
121 | &-title {
122 | font-size: vars.$h3-font-size;
123 | color: vars.$first-color-dark;
124 | margin-bottom: vars.$mb-2;
125 | }
126 |
127 | &-data {
128 | display: flex;
129 | align-items: center;
130 | padding-left: 1.5rem;
131 | margin-bottom: vars.$mb-3;
132 | }
133 |
134 | &-icon {
135 | font-size: 1.5rem;
136 | color: vars.$first-color;
137 | margin-right: vars.$mb-4;
138 | }
139 |
140 | &-subtitle {
141 | display: block;
142 | font-weight: vars.$font-semi-bold;
143 |
144 | &-small {
145 | font-size: vars.$small-font-size;
146 | }
147 | }
148 | }
149 |
150 | }
151 |
152 |
153 | /* ===== SKILLS =====*/
154 | .skills {
155 | &__container {
156 | row-gap: 2rem;
157 | }
158 |
159 | &__subtitle {
160 | font-size: vars.$h3-font-size;
161 | color: vars.$first-color-dark;
162 | margin-bottom: vars.$mb-2;
163 | }
164 |
165 | &__data {
166 | position: relative;
167 | display: flex;
168 | justify-content: space-between;
169 | margin: 0 vars.$mb-2;
170 | margin-bottom: vars.$mb-4;
171 | }
172 |
173 | &__name {
174 | text-transform: uppercase;
175 | }
176 |
177 | &__bar {
178 | position: absolute;
179 | bottom: -0.75rem;
180 | height: 0.25rem;
181 | background-color: vars.$first-color;
182 | }
183 |
184 | &__html {
185 | width: 80%;
186 | }
187 |
188 | &__js {
189 | width: 90%;
190 | }
191 |
192 | &__react {
193 | width: 70%;
194 | }
195 |
196 | &__angular {
197 | width: 60%;
198 | }
199 |
200 | &__php {
201 | width: 80%;
202 | }
203 |
204 | &__node {
205 | width: 70%;
206 | }
207 |
208 | &__firebase {
209 | width: 90%;
210 | }
211 |
212 | &__python {
213 | width: 80%;
214 | }
215 | }
216 |
217 |
218 | /* ===== EDUCATION =====*/
219 | .education {
220 | &__container {
221 | row-gap: 2rem;
222 | }
223 |
224 | &__content {
225 | display: grid;
226 | grid-template-columns: 1fr max-content 1fr;
227 | }
228 |
229 | &__race,
230 | &__year {
231 | font-size: vars.$h3-font-size;
232 | margin-bottom: 0.25rem;
233 | }
234 |
235 | &__specialty,
236 | &__university {
237 | display: block;
238 | font-size: vars.$smaller-font-size;
239 | }
240 |
241 | &__university,
242 | &__year {
243 | text-align: right;
244 | }
245 |
246 | &__time {
247 | padding: 0 1rem;
248 | justify-self: center;
249 | }
250 |
251 | &__rounder {
252 | position: relative;
253 | display: inline-block;
254 | width: 12px;
255 | height: 12px;
256 | background-color: vars.$first-color;
257 | border-radius: 50%;
258 |
259 | &::before {
260 | content: '';
261 | position: absolute;
262 | transform: translate(-4px, -4px);
263 | width: 20px;
264 | height: 20px;
265 | border: 1px solid vars.$first-color;
266 | border-radius: 50%;
267 | }
268 | }
269 |
270 | &__line {
271 | display: block;
272 | height: 90%;
273 | width: 2px;
274 | background-color: vars.$first-color;
275 | transform: translate(5px, -4px);
276 | }
277 | }
278 |
279 |
280 | /* ===== SERVICES =====*/
281 | .services {
282 | &__container {
283 | row-gap: 2rem;
284 | }
285 |
286 | &__content {
287 | padding: 1.5rem 0.5rem;
288 | border: 2px solid vars.$first-color;
289 | border-radius: 0.5rem;
290 | text-align: center;
291 |
292 | &:hover {
293 | background-color: vars.$first-color;
294 |
295 | .services__icon {
296 | background-color: vars.$first-color-lighten;
297 | color: vars.$first-color;
298 | }
299 |
300 | .services__title {
301 | color: vars.$first-color-lighten;
302 | }
303 |
304 | .services__description {
305 | color: vars.$first-color-lighten;
306 | }
307 | }
308 | }
309 |
310 | &__icon {
311 | font-size: 2rem;
312 | padding: 0.5rem;
313 | background-color: vars.$first-color;
314 | color: vars.$first-color-lighten;
315 | border-radius: 50%;
316 | margin-bottom: vars.$mb-2;
317 | }
318 |
319 | &__title {
320 | font-size: 1.25rem;
321 | color: vars.$first-color-dark;
322 | margin-bottom: vars.$mb-1;
323 | }
324 |
325 | &__title,
326 | &__description,
327 | &__icon,
328 | &__content {
329 | transition: .5s;
330 | }
331 | }
332 |
333 | /* ===== PROJECT IN MIND =====*/
334 | .project {
335 | background-color: vars.$first-color;
336 | padding-bottom: 0;
337 |
338 | &__container {
339 | row-gap: 2rem;
340 | }
341 |
342 | &__data {
343 | text-align: center;
344 | }
345 |
346 | &__description,
347 | &__title {
348 | color: vars.$first-color-lighten;
349 | }
350 |
351 | &__description {
352 | margin-bottom: vars.$mb-4;
353 | }
354 |
355 | &__img {
356 | width: 220px;
357 | justify-self: center;
358 | }
359 | }
360 |
361 |
362 | /* ===== WORKS =====*/
363 | .works {
364 | &__container {
365 | justify-items: center;
366 | row-gap: 2rem;
367 | }
368 |
369 | &__img {
370 | position: relative;
371 | overflow: hidden;
372 | border-radius: .5rem;
373 |
374 | img {
375 | width: 100%;
376 | }
377 |
378 | &:hover .works__data {
379 | bottom: 0;
380 | }
381 | }
382 |
383 | &__data {
384 | position: absolute;
385 | bottom: -100%;
386 | width: 100%;
387 | height: 100%;
388 | display: flex;
389 | flex-direction: column;
390 | justify-content: center;
391 | align-items: center;
392 | background: rgba(204, 75, 44, .7);
393 | border-radius: 0.5rem;
394 | transition: .3s;
395 | }
396 |
397 | &__link {
398 | display: inline-flex;
399 | font-size: 1.5rem;
400 | background-color: vars.$first-color-lighten;
401 | color: vars.$first-color;
402 | padding: 0.25rem;
403 | border-radius: 0.25rem;
404 | margin-bottom: vars.$mb-2;
405 | }
406 |
407 | &__title {
408 | font-size: vars.$h2-font-size;
409 | color: vars.$first-color-lighten;
410 | }
411 | }
412 |
413 |
414 | /* ===== CONTACT =====*/
415 | .contact {
416 | &__container {
417 | row-gap: 3rem;
418 | }
419 |
420 | &__input {
421 | width: 100%;
422 | padding: 1rem;
423 | outline: none;
424 | border: none;
425 | background-color: vars.$text-color-light;
426 | font-size: vars.$normal-font-size;
427 | margin-bottom: vars.$mb-2;
428 | border-radius: 0.5rem;
429 | resize: vertical;
430 | }
431 |
432 | & ::placeholder {
433 | color: vars.$first-color-dark;
434 | font-family: vars.$body-font;
435 | font-weight: vars.$font-medium;
436 | }
437 |
438 | &__button {
439 | outline: none;
440 | border: none;
441 | font-family: vars.$body-font;
442 | font-size: vars.$normal-font-size;
443 | cursor: pointer;
444 | }
445 |
446 | &__info {
447 | margin-bottom: vars.$mb-3;
448 | }
449 |
450 | &__subtitle {
451 | font-size: vars.$h3-font-size;
452 | color: vars.$first-color-dark;
453 | margin-bottom: vars.$mb-1;
454 | }
455 |
456 | &__text {
457 | display: block;
458 | padding-left: 1rem;
459 | }
460 | }
461 |
462 | @include mixins.media-md {
463 |
464 | .home__button {
465 | width: initial;
466 | }
467 |
468 | .nav__menu {
469 | width: vars.$nav-width;
470 | }
471 |
472 | .about__container,
473 | .skills__container,
474 | .services__container,
475 | .works__container,
476 | .contact__container,
477 | .contact__inputs {
478 | grid-template-columns: repeat(2, 1fr);
479 | }
480 |
481 | .about {
482 | &__data {
483 | text-align: initial;
484 | }
485 |
486 | &__description {
487 | margin-bottom: vars.$mb-5;
488 | }
489 |
490 | &__img {
491 | width: 100%;
492 | }
493 |
494 | &__information {
495 | padding-left: 4rem;
496 | }
497 | }
498 |
499 | .education__time {
500 | padding: 0 2rem;
501 | }
502 |
503 | .project {
504 | background: none;
505 |
506 | &__container {
507 | background-color: vars.$first-color;
508 | grid-template-columns: 2fr 1.2fr;
509 | padding: 0 2rem;
510 | border-radius: 0.5rem;
511 | }
512 |
513 | &__data {
514 | padding: 3rem 0;
515 | }
516 |
517 | &__data,
518 | &__title {
519 | text-align: initial;
520 | }
521 |
522 | &__img {
523 | min-width: 100%;
524 | align-self: flex-end;
525 | }
526 | }
527 |
528 | .contact {
529 | &__inputs {
530 | display: grid;
531 | column-gap: 1.5rem;
532 | }
533 |
534 | &__info {
535 | padding-left: 3rem;
536 | }
537 | }
538 | }
539 |
540 | @include mixins.media-xl {
541 | .home__container {
542 | height: 100vh;
543 | }
544 |
545 | .services__container,
546 | .works__container {
547 | grid-template-columns: repeat(3, 1fr);
548 | }
549 | }
--------------------------------------------------------------------------------
/css/main.css:
--------------------------------------------------------------------------------
1 | /*===== BASE =====*/
2 | *,
3 | ::before,
4 | ::after {
5 | box-sizing: border-box;
6 | }
7 |
8 | html {
9 | scroll-behavior: smooth;
10 | }
11 |
12 | body {
13 | margin: 3rem 0 0 0;
14 | font-family: "Poppins", sans-serif;
15 | font-size: 0.938rem;
16 | font-weight: 500;
17 | background-color: #fffafa;
18 | color: #54423d;
19 | line-height: 1.6;
20 | }
21 |
22 | h1,
23 | h2,
24 | h3,
25 | p {
26 | margin: 0;
27 | }
28 |
29 | h3 {
30 | font-weight: 600;
31 | }
32 |
33 | ul {
34 | margin: 0;
35 | padding: 0;
36 | list-style: none;
37 | }
38 |
39 | a {
40 | text-decoration: none;
41 | color: #54423d;
42 | }
43 |
44 | img {
45 | height: auto;
46 | display: block;
47 | }
48 |
49 | ::-webkit-scrollbar {
50 | width: 12px;
51 | }
52 | ::-webkit-scrollbar-thumb {
53 | background: #cc4b2c;
54 | border-radius: 10px;
55 | }
56 | ::-webkit-scrollbar-thumb:hover {
57 | background: #662616;
58 | }
59 |
60 | @media screen and (min-width: 1024px) {
61 | body {
62 | margin: 0;
63 | padding-left: 324px;
64 | }
65 | }
66 | /*===== NAV =====*/
67 | .nav {
68 | height: 3rem;
69 | display: flex;
70 | justify-content: space-between;
71 | align-items: center;
72 | width: calc(100% - 2rem);
73 | margin-left: 1rem;
74 | margin-right: 1rem;
75 | max-width: 1024px;
76 | }
77 | .nav__menu {
78 | position: fixed;
79 | top: 0;
80 | left: -100%;
81 | width: 100%;
82 | height: 100vh;
83 | padding: 3rem;
84 | display: flex;
85 | align-items: center;
86 | justify-content: center;
87 | background-color: #cc4b2c;
88 | transition: 0.5s;
89 | }
90 | .nav__close {
91 | position: absolute;
92 | top: 1rem;
93 | right: 1rem;
94 | font-size: 2rem;
95 | color: #fffafa;
96 | cursor: pointer;
97 | }
98 | .nav__item {
99 | margin-bottom: 2rem;
100 | }
101 | .nav__link {
102 | font-size: 1rem;
103 | text-transform: uppercase;
104 | color: #fffafa;
105 | font-weight: 700;
106 | transition: 0.3s;
107 | }
108 | .nav__link:hover {
109 | color: #54423d;
110 | }
111 | .nav__toggle {
112 | color: #662616;
113 | font-size: 1.3rem;
114 | cursor: pointer;
115 | }
116 |
117 | @media screen and (min-width: 1024px) {
118 | .nav__close {
119 | display: none;
120 | }
121 | .nav__menu {
122 | left: 0;
123 | }
124 | }
125 | /* ===== FOOTER =====*/
126 | .footer {
127 | background-color: #290f09;
128 | color: #fffafa;
129 | text-align: center;
130 | }
131 | .footer__title {
132 | font-size: 1.5rem;
133 | margin-bottom: 1rem;
134 | }
135 | .footer__description {
136 | margin-bottom: 1rem;
137 | }
138 | .footer__social {
139 | margin-bottom: 3rem;
140 | }
141 | .footer__link {
142 | display: inline-flex;
143 | background-color: #cc4b2c;
144 | color: #fffafa;
145 | font-size: 1.1rem;
146 | border-radius: 50%;
147 | padding: 0.4rem;
148 | margin: 0 0.5rem;
149 | transition: 0.3s;
150 | }
151 | .footer__link:hover {
152 | background-color: #fffafa;
153 | color: #cc4b2c;
154 | }
155 | .footer__copy {
156 | font-size: 0.75rem;
157 | color: #54423d;
158 | }
159 | .footer__copy a {
160 | transition: 0.4s;
161 | }
162 | .footer__copy a:hover {
163 | color: #fffafa;
164 | }
165 |
166 | @media screen and (min-width: 768px) {
167 | .footer {
168 | background: none;
169 | }
170 | .footer__container {
171 | background-color: #290f09;
172 | padding: 3rem;
173 | border-radius: 0.5rem;
174 | }
175 | }
176 | /*===== CLASS CSS ===== */
177 | .section {
178 | padding: 4rem 0 2rem;
179 | }
180 | .section-title {
181 | font-size: 1.5rem;
182 | color: #cc4b2c;
183 | margin-bottom: 1.5rem;
184 | text-align: center;
185 | }
186 | .section-subtitle {
187 | display: block;
188 | font-size: 0.813rem;
189 | color: #290f09;
190 | text-align: center;
191 | font-weight: 700;
192 | margin-bottom: 0.25rem;
193 | }
194 |
195 | /*===== LAYOUT =====*/
196 | .bd-grid {
197 | max-width: 1024px;
198 | display: grid;
199 | grid-template-columns: 100%;
200 | column-gap: 2rem;
201 | width: calc(100% - 2rem);
202 | margin-left: 1rem;
203 | margin-right: 1rem;
204 | }
205 |
206 | .l-header {
207 | width: 100%;
208 | position: fixed;
209 | top: 0;
210 | left: 0;
211 | z-index: 100;
212 | background-color: #fffafa;
213 | box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
214 | }
215 |
216 | /*=== Show menu ===*/
217 | .show {
218 | left: 0;
219 | }
220 |
221 | /*Active menu*/
222 | .active {
223 | color: #54423d;
224 | margin-left: 1rem;
225 | }
226 |
227 | @media screen and (min-width: 1024px) {
228 | .l-header {
229 | width: 0;
230 | }
231 | .section {
232 | padding: 3rem 0 2rem;
233 | }
234 | .bd-grid {
235 | margin-left: auto;
236 | margin-right: auto;
237 | }
238 | }
239 | /*===== HOME =====*/
240 | .home__container {
241 | height: calc(100vh - 3rem);
242 | align-items: center;
243 | }
244 | .home__data {
245 | display: flex;
246 | flex-direction: column;
247 | align-items: center;
248 | height: max-content;
249 | text-align: center;
250 | }
251 | .home__img {
252 | padding-top: 1.3rem;
253 | padding-left: 0.8rem;
254 | width: 160px;
255 | height: 160px;
256 | background-color: #cc4b2c;
257 | border-radius: 50%;
258 | overflow: hidden;
259 | margin-bottom: 1rem;
260 | }
261 | .home__img img {
262 | width: 155px;
263 | }
264 | .home__title {
265 | font-size: 1.5rem;
266 | color: #cc4b2c;
267 | font-weight: 600;
268 | }
269 | .home__profession {
270 | font-size: 0.813rem;
271 | color: #662616;
272 | margin-bottom: 2.5rem;
273 | }
274 | .home__social {
275 | margin-bottom: 5rem;
276 | }
277 | .home__social-link {
278 | display: inline-flex;
279 | background-color: #cc4b2c;
280 | color: #fffafa;
281 | font-size: 1.1rem;
282 | border-radius: 50%;
283 | padding: 0.4rem;
284 | margin: 0 0.5rem;
285 | transition: 0.3s;
286 | }
287 | .home__social-link:hover {
288 | background-color: #662616;
289 | }
290 | .home__button {
291 | width: 100%;
292 | }
293 |
294 | /*BUTTONS*/
295 | .button {
296 | display: inline-block;
297 | background-color: #cc4b2c;
298 | color: #fffafa;
299 | padding: 1rem 2rem;
300 | font-weight: 600;
301 | border-radius: 0.5rem;
302 | transition: 0.3s;
303 | }
304 | .button:hover {
305 | background-color: #662616;
306 | }
307 | .button__light {
308 | background-color: #fffafa;
309 | color: #cc4b2c;
310 | }
311 | .button__light:hover {
312 | color: #fffafa;
313 | }
314 |
315 | /* ===== ABOUT =====*/
316 | .about__container {
317 | row-gap: 2rem;
318 | }
319 | .about__data {
320 | text-align: center;
321 | }
322 | .about__description {
323 | margin-bottom: 2rem;
324 | }
325 | .about__img {
326 | width: 220px;
327 | border-radius: 0.5rem;
328 | margin: 0 auto;
329 | }
330 | .about__information {
331 | margin-bottom: 2rem;
332 | }
333 | .about__information-title {
334 | font-size: 1rem;
335 | color: #662616;
336 | margin-bottom: 1rem;
337 | }
338 | .about__information-data {
339 | display: flex;
340 | align-items: center;
341 | padding-left: 1.5rem;
342 | margin-bottom: 1.5rem;
343 | }
344 | .about__information-icon {
345 | font-size: 1.5rem;
346 | color: #cc4b2c;
347 | margin-right: 2rem;
348 | }
349 | .about__information-subtitle {
350 | display: block;
351 | font-weight: 600;
352 | }
353 | .about__information-subtitle-small {
354 | font-size: 0.813rem;
355 | }
356 |
357 | /* ===== SKILLS =====*/
358 | .skills__container {
359 | row-gap: 2rem;
360 | }
361 | .skills__subtitle {
362 | font-size: 1rem;
363 | color: #662616;
364 | margin-bottom: 1rem;
365 | }
366 | .skills__data {
367 | position: relative;
368 | display: flex;
369 | justify-content: space-between;
370 | margin: 0 1rem;
371 | margin-bottom: 2rem;
372 | }
373 | .skills__name {
374 | text-transform: uppercase;
375 | }
376 | .skills__bar {
377 | position: absolute;
378 | bottom: -0.75rem;
379 | height: 0.25rem;
380 | background-color: #cc4b2c;
381 | }
382 | .skills__html {
383 | width: 80%;
384 | }
385 | .skills__js {
386 | width: 90%;
387 | }
388 | .skills__react {
389 | width: 70%;
390 | }
391 | .skills__angular {
392 | width: 60%;
393 | }
394 | .skills__php {
395 | width: 80%;
396 | }
397 | .skills__node {
398 | width: 70%;
399 | }
400 | .skills__firebase {
401 | width: 90%;
402 | }
403 | .skills__python {
404 | width: 80%;
405 | }
406 |
407 | /* ===== EDUCATION =====*/
408 | .education__container {
409 | row-gap: 2rem;
410 | }
411 | .education__content {
412 | display: grid;
413 | grid-template-columns: 1fr max-content 1fr;
414 | }
415 | .education__race, .education__year {
416 | font-size: 1rem;
417 | margin-bottom: 0.25rem;
418 | }
419 | .education__specialty, .education__university {
420 | display: block;
421 | font-size: 0.75rem;
422 | }
423 | .education__university, .education__year {
424 | text-align: right;
425 | }
426 | .education__time {
427 | padding: 0 1rem;
428 | justify-self: center;
429 | }
430 | .education__rounder {
431 | position: relative;
432 | display: inline-block;
433 | width: 12px;
434 | height: 12px;
435 | background-color: #cc4b2c;
436 | border-radius: 50%;
437 | }
438 | .education__rounder::before {
439 | content: "";
440 | position: absolute;
441 | transform: translate(-4px, -4px);
442 | width: 20px;
443 | height: 20px;
444 | border: 1px solid #cc4b2c;
445 | border-radius: 50%;
446 | }
447 | .education__line {
448 | display: block;
449 | height: 90%;
450 | width: 2px;
451 | background-color: #cc4b2c;
452 | transform: translate(5px, -4px);
453 | }
454 |
455 | /* ===== SERVICES =====*/
456 | .services__container {
457 | row-gap: 2rem;
458 | }
459 | .services__content {
460 | padding: 1.5rem 0.5rem;
461 | border: 2px solid #cc4b2c;
462 | border-radius: 0.5rem;
463 | text-align: center;
464 | }
465 | .services__content:hover {
466 | background-color: #cc4b2c;
467 | }
468 | .services__content:hover .services__icon {
469 | background-color: #fffafa;
470 | color: #cc4b2c;
471 | }
472 | .services__content:hover .services__title {
473 | color: #fffafa;
474 | }
475 | .services__content:hover .services__description {
476 | color: #fffafa;
477 | }
478 | .services__icon {
479 | font-size: 2rem;
480 | padding: 0.5rem;
481 | background-color: #cc4b2c;
482 | color: #fffafa;
483 | border-radius: 50%;
484 | margin-bottom: 1rem;
485 | }
486 | .services__title {
487 | font-size: 1.25rem;
488 | color: #662616;
489 | margin-bottom: 0.5rem;
490 | }
491 | .services__title, .services__description, .services__icon, .services__content {
492 | transition: 0.5s;
493 | }
494 |
495 | /* ===== PROJECT IN MIND =====*/
496 | .project {
497 | background-color: #cc4b2c;
498 | padding-bottom: 0;
499 | }
500 | .project__container {
501 | row-gap: 2rem;
502 | }
503 | .project__data {
504 | text-align: center;
505 | }
506 | .project__description, .project__title {
507 | color: #fffafa;
508 | }
509 | .project__description {
510 | margin-bottom: 2rem;
511 | }
512 | .project__img {
513 | width: 220px;
514 | justify-self: center;
515 | }
516 |
517 | /* ===== WORKS =====*/
518 | .works__container {
519 | justify-items: center;
520 | row-gap: 2rem;
521 | }
522 | .works__img {
523 | position: relative;
524 | overflow: hidden;
525 | border-radius: 0.5rem;
526 | }
527 | .works__img img {
528 | width: 100%;
529 | }
530 | .works__img:hover .works__data {
531 | bottom: 0;
532 | }
533 | .works__data {
534 | position: absolute;
535 | bottom: -100%;
536 | width: 100%;
537 | height: 100%;
538 | display: flex;
539 | flex-direction: column;
540 | justify-content: center;
541 | align-items: center;
542 | background: rgba(204, 75, 44, 0.7);
543 | border-radius: 0.5rem;
544 | transition: 0.3s;
545 | }
546 | .works__link {
547 | display: inline-flex;
548 | font-size: 1.5rem;
549 | background-color: #fffafa;
550 | color: #cc4b2c;
551 | padding: 0.25rem;
552 | border-radius: 0.25rem;
553 | margin-bottom: 1rem;
554 | }
555 | .works__title {
556 | font-size: 1.25rem;
557 | color: #fffafa;
558 | }
559 |
560 | /* ===== CONTACT =====*/
561 | .contact__container {
562 | row-gap: 3rem;
563 | }
564 | .contact__input {
565 | width: 100%;
566 | padding: 1rem;
567 | outline: none;
568 | border: none;
569 | background-color: #eae7e6;
570 | font-size: 0.938rem;
571 | margin-bottom: 1rem;
572 | border-radius: 0.5rem;
573 | resize: vertical;
574 | }
575 | .contact ::placeholder {
576 | color: #662616;
577 | font-family: "Poppins", sans-serif;
578 | font-weight: 500;
579 | }
580 | .contact__button {
581 | outline: none;
582 | border: none;
583 | font-family: "Poppins", sans-serif;
584 | font-size: 0.938rem;
585 | cursor: pointer;
586 | }
587 | .contact__info {
588 | margin-bottom: 1.5rem;
589 | }
590 | .contact__subtitle {
591 | font-size: 1rem;
592 | color: #662616;
593 | margin-bottom: 0.5rem;
594 | }
595 | .contact__text {
596 | display: block;
597 | padding-left: 1rem;
598 | }
599 |
600 | @media screen and (min-width: 768px) {
601 | .home__button {
602 | width: initial;
603 | }
604 | .nav__menu {
605 | width: 324px;
606 | }
607 | .about__container,
608 | .skills__container,
609 | .services__container,
610 | .works__container,
611 | .contact__container,
612 | .contact__inputs {
613 | grid-template-columns: repeat(2, 1fr);
614 | }
615 | .about__data {
616 | text-align: initial;
617 | }
618 | .about__description {
619 | margin-bottom: 2.5rem;
620 | }
621 | .about__img {
622 | width: 100%;
623 | }
624 | .about__information {
625 | padding-left: 4rem;
626 | }
627 | .education__time {
628 | padding: 0 2rem;
629 | }
630 | .project {
631 | background: none;
632 | }
633 | .project__container {
634 | background-color: #cc4b2c;
635 | grid-template-columns: 2fr 1.2fr;
636 | padding: 0 2rem;
637 | border-radius: 0.5rem;
638 | }
639 | .project__data {
640 | padding: 3rem 0;
641 | }
642 | .project__data, .project__title {
643 | text-align: initial;
644 | }
645 | .project__img {
646 | min-width: 100%;
647 | align-self: flex-end;
648 | }
649 | .contact__inputs {
650 | display: grid;
651 | column-gap: 1.5rem;
652 | }
653 | .contact__info {
654 | padding-left: 3rem;
655 | }
656 | }
657 | @media screen and (min-width: 1024px) {
658 | .home__container {
659 | height: 100vh;
660 | }
661 | .services__container,
662 | .works__container {
663 | grid-template-columns: repeat(3, 1fr);
664 | }
665 | }
666 |
667 | /*# sourceMappingURL=main.css.map */
668 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | Responsive personal portfolio | Harris
15 |
16 |
17 |
18 |
19 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
Javohir To'xtasinov
66 |
Frontend Developer
67 |
68 |
74 |
75 |
Download Resume
77 |
78 |
79 |
80 |
81 |
82 |
83 | My Intro
84 | About Me
85 |
86 |
87 |
88 |
Hi, I'm a frontend developer, passionate about
89 | creating and developing
90 | web interfaces. I have many years of experience in this area of work, widh multiple quality
91 | projects.
92 |
93 |
94 |
95 |
136 |
137 |
138 |
139 |
140 |
141 | Why Choose Me
142 | My expertise Area
143 |
144 |
145 |
146 |
Frontend
147 |
148 |
149 | HTML/CSS
150 | 80%
151 |
152 |
153 |
154 |
155 | JavaScript
156 | 90%
157 |
158 |
159 |
160 |
161 | React
162 | 70%
163 |
164 |
165 |
166 |
167 | Angular
168 | 60%
169 |
170 |
171 |
172 |
173 |
174 |
Backend
175 |
176 |
177 | Php
178 | 80%
179 |
180 |
181 |
182 |
183 | Node Js
184 | 70%
185 |
186 |
187 |
188 |
189 | FireBase
190 | 90%
191 |
192 |
193 |
194 |
195 | Python
196 | 80%
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 | Qualification
206 | My Education
207 |
208 |
209 |
210 |
211 |
2019 - 2020
212 | University of Studies
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
Diploma Development
222 | Frontend
223 |
224 |
225 |
226 |
227 |
228 |
2014 - 2017
229 | University of Studies
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
Diploma Development
239 | Backend
240 |
241 |
242 |
243 |
244 |
245 |
2018 - 2020
246 | University of Studies
247 |
248 |
249 |
250 |
251 |
252 |
253 |
254 |
255 |
Diploma Design
256 | UI/UX
257 |
258 |
259 |
260 |
261 |
262 |
263 |
264 | What I Offer
265 | My Services
266 |
267 |
268 |
269 |
270 |
Web Design
271 |
Lorem ipsum, dolor sit amet consectetur adipisicing elit. Debitis
272 | autem pariatur eum ratione ea quisquam.
273 |
274 |
275 |
276 |
277 |
Graphic Design
278 |
Lorem ipsum, dolor sit amet consectetur adipisicing elit. Debitis
279 | autem pariatur
280 | eum ratione ea quisquam.
281 |
282 |
283 |
284 |
285 |
UI/UX
286 |
Lorem ipsum, dolor sit amet consectetur adipisicing elit. Debitis
287 | autem pariatur
288 | eum ratione ea quisquam.
289 |
290 |
291 |
292 |
293 |
Backend Development
294 |
Lorem ipsum, dolor sit amet consectetur adipisicing elit. Debitis
295 | autem pariatur
296 | eum ratione ea quisquam.
297 |
298 |
299 |
300 |
301 |
Content Writing
302 |
Lorem ipsum, dolor sit amet consectetur adipisicing elit. Debitis
303 | autem pariatur
304 | eum ratione ea quisquam.
305 |
306 |
307 |
308 |
309 |
Interface Mobile
310 |
Lorem ipsum, dolor sit amet consectetur adipisicing elit. Debitis
311 | autem pariatur
312 | eum ratione ea quisquam.
313 |
314 |
315 |
316 |
317 |
318 |
319 |
320 |
321 |
Do you have a project in mind
322 |
Lorem ipsum dolor sit amet consectetur adipisicing elit. Molestias
323 | voluptatum aliquid distinctio, iste veritatis vel minus corrupti dolore porro. Dolor?
324 |
Contact Me
325 |
326 |
327 |
328 |
329 |
330 |
331 |
332 |
333 | My Portfolio
334 | Recent Works
335 |
336 |
337 |
338 |
339 |
340 |
345 |
346 |
347 |
348 |
349 |
354 |
355 |
356 |
357 |
358 |
363 |
364 |
365 |
366 |
367 |
372 |
373 |
374 |
375 |
376 |
381 |
382 |
383 |
384 |
385 |
390 |
391 |
392 |
393 |
394 |
395 |
433 |
434 |
435 |
436 |
437 |
456 |
457 |
458 |
459 |
460 |
461 |
462 |
463 |
--------------------------------------------------------------------------------