├── README.md
├── debug.log
├── assets
├── img
│ ├── perfil.png
│ ├── skill.jpg
│ ├── work1.jpg
│ ├── work2.jpg
│ ├── work3.jpg
│ ├── work4.jpg
│ ├── work5.jpg
│ └── work6.jpg
├── js
│ └── main.js
└── css
│ └── style.css
├── yarn.lock
├── .idea
├── codeStyles
│ └── codeStyleConfig.xml
├── modules.xml
├── Новая папка.iml
└── workspace.xml
└── index.html
/README.md:
--------------------------------------------------------------------------------
1 | # beautifull-website
2 | very beautifull website for portfolio
3 |
--------------------------------------------------------------------------------
/debug.log:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sammibadriddinov/beautifull-website/HEAD/debug.log
--------------------------------------------------------------------------------
/assets/img/perfil.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sammibadriddinov/beautifull-website/HEAD/assets/img/perfil.png
--------------------------------------------------------------------------------
/assets/img/skill.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sammibadriddinov/beautifull-website/HEAD/assets/img/skill.jpg
--------------------------------------------------------------------------------
/assets/img/work1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sammibadriddinov/beautifull-website/HEAD/assets/img/work1.jpg
--------------------------------------------------------------------------------
/assets/img/work2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sammibadriddinov/beautifull-website/HEAD/assets/img/work2.jpg
--------------------------------------------------------------------------------
/assets/img/work3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sammibadriddinov/beautifull-website/HEAD/assets/img/work3.jpg
--------------------------------------------------------------------------------
/assets/img/work4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sammibadriddinov/beautifull-website/HEAD/assets/img/work4.jpg
--------------------------------------------------------------------------------
/assets/img/work5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sammibadriddinov/beautifull-website/HEAD/assets/img/work5.jpg
--------------------------------------------------------------------------------
/assets/img/work6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sammibadriddinov/beautifull-website/HEAD/assets/img/work6.jpg
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 |
--------------------------------------------------------------------------------
/.idea/codeStyles/codeStyleConfig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/Новая папка.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/workspace.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 | 1602387854361
28 |
29 |
30 | 1602387854361
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/assets/js/main.js:
--------------------------------------------------------------------------------
1 | /*=========== SHOW MENU ===============*/
2 | const showMenu = (toggleId, navId) => {
3 | const toggle = document.getElementById(toggleId);
4 | const 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 | navMenu.classList.remove('show')
20 | }
21 | navLink.forEach(n => n.addEventListener('click', linkAction))
22 |
23 | /*=========== SCROLL SECTION ACTIVE LINK ===============*/
24 | const sections = document.querySelectorAll('section[id]')
25 |
26 | window.addEventListener('scroll', scrollActive)
27 |
28 | function scrollActive() {
29 | const scrollY = window.scrollY
30 |
31 | sections.forEach(function (current) {
32 | const sectionHeight = current.offsetHeight
33 | const sectionTop = current.offsetTop - 50;
34 | const sectionId = current.getAttribute('id')
35 |
36 | if(scrollY > sectionTop && scrollY <= sectionTop + sectionHeight){
37 | document.querySelector('.nav__menu a[href*=' + sectionId +']').classList.add('active')
38 | }else{
39 | document.querySelector('.nav__menu a[href*=' + sectionId +']').classList.remove('active')
40 |
41 | }
42 | })
43 | }
44 |
45 | /*=========== SCROLL REVEAL ANIMATION ===============*/
46 | const sr = ScrollReveal({
47 | origin: 'top',
48 | distance: '80px',
49 | duration: 2000,
50 | reset: true
51 | })
52 | /*=========== SCROLL ABOUT ===============*/
53 | sr.reveal('.home__title', {})
54 | sr.reveal('.home__scroll', {delay: 200})
55 | sr.reveal('.home__img', {origin:'right', delay: 400})
56 |
57 | sr.reveal('.about__img', {delay:500})
58 | sr.reveal('.about__subtitle', {delay:300})
59 | sr.reveal('.about__profession', {delay:400})
60 | sr.reveal('.about__text', {delay:500})
61 | sr.reveal('.about__social-icon', {delay:600, interval: 200})
62 |
63 | sr.reveal('.skills__subtitle', {})
64 | sr.reveal('.skills__name', {distance: '20px', delay:50, interval:100})
65 | sr.reveal('.skills__img', {delay:400})
66 |
67 | sr.reveal('.portfolio__img', {interval: 200})
68 |
69 |
70 | sr.reveal('.contact__subtitle', {})
71 | sr.reveal('.contact__text', {interval: 200})
72 | sr.reveal('.contact__input', {delay: 400})
73 | sr.reveal('.contact__text', {interval: 200})
74 | sr.reveal('.contact__button', {delay: 600})
75 |
76 |
77 |
78 |
79 |
80 |
81 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | Document
14 |
15 |
16 |
17 |
18 |
37 |
38 |
39 |
40 |
41 |
42 |
HE LLO.
43 |
44 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 | About
57 |
58 |
59 |
60 |
61 |
62 |
I am Samar
63 |
Front-End Developer
64 |
Lorem ipsum dolor sit amet, consectetur adipisicing elit. A accusamus culpa delectus deserunt, dolor dolores eos exercitationem illo incidunt, iusto laborum molestias quis quisquam repudiandae!
65 |
66 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 | Skills
81 |
82 |
83 |
84 |
Development
85 | Html
86 | Css
87 | Javascript
88 | Bootstrap
89 | jQuery
90 | React
91 |
92 | Design
93 | Figma
94 | Adobe XD
95 | Photoshop
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 | Portfolio
111 |
112 |
113 |
114 |
115 |
116 |
119 |
120 |
121 |
122 |
123 |
126 |
127 |
128 |
129 |
130 |
133 |
134 |
135 |
136 |
137 |
140 |
141 |
142 |
143 |
144 |
147 |
148 |
149 |
150 |
151 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
187 |
188 |
189 |
190 |
191 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
--------------------------------------------------------------------------------
/assets/css/style.css:
--------------------------------------------------------------------------------
1 | /*===== GOOGLE FONTS =====*/
2 | @import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@500;600;700&display=swap");
3 |
4 | /*=========== VARIABES CSS ===============*/
5 | :root{
6 | --header-height: 3rem;
7 | --font-medium: 500;
8 | }
9 | /*=========== Colores ===============*/
10 | :root{
11 | --first-color: #5361ff;
12 | --white-color: #FAFAFF;
13 | --dark-color: #2A3B47;
14 | --text-color: #697477;
15 | }
16 | /*=========== Typografia ===============*/
17 | :root{
18 | --body-font: 'Montserrat', sans-serif;
19 | --big-font-size: 6.25rem;
20 | --h2-font-size: 1.25rem;
21 | --normal-font-size: .938rem;
22 | --small-font-size: .813rem;
23 | }
24 | @media screen and (min-width: 768px){
25 | :root{
26 | --big-font-size: 10.5rem;
27 | --h2-font-size: 2rem;
28 | --normal-font-size: 1rem;
29 | --small-font-size: .875rem;
30 | }
31 | }
32 |
33 | /*=========== Margenes ===============*/
34 | :root{
35 | --mb-1: .5rem;
36 | --mb-2: 1rem;
37 | --mb-3: 1.5rem;
38 | --mb-4: 2rem;
39 | }
40 | /*=========== Z-Index ===============*/
41 | :root{
42 | --z-fixed: 100;
43 | }
44 | /*=========== Base ===============*/
45 | *,::before,::after{
46 | box-sizing: border-box;
47 | }
48 | html{
49 | scroll-behavior: smooth;
50 | }
51 | body{
52 | margin: var(--header-height) 0 0 0;
53 | font-family: var(--body-font);
54 | font-size: var(--normal-font-size);
55 | font-weight: var(--font-medium);
56 | color: var(--text-color);
57 | line-height: 1.6;
58 | }
59 | h1, h2, p{
60 | margin: 0;
61 | }
62 | ul{
63 | margin: 0;
64 | padding: 0;
65 | list-style: none;
66 | }
67 | a{
68 | text-decoration: none;
69 | color: var(--text-color);
70 | }
71 | img{
72 | max-width: 100%;
73 | height: auto;
74 | display: block;
75 | }
76 |
77 | /*=========== CLASS CSS ===============*/
78 | .section{
79 | padding: 3rem 0;
80 | }
81 | .section-title{
82 | position: relative;
83 | font-size: var(--h2-font-size);
84 | color: var(--dark-color);
85 | margin: var(--mb-4) 0;
86 | text-align: center;
87 | }
88 | .section-title::after{
89 | position: absolute;
90 | content: "";
91 | width: 32px;
92 | height: .18rem;
93 | left: 0;
94 | right: 0;
95 | margin: auto;
96 | top: 2rem;
97 | background: var(--first-color);
98 | }
99 |
100 | /*=========== LAYOUT ===============*/
101 | .bd-grid{
102 | max-width: 1024px;
103 | display: grid;
104 | grid-template-columns: 100%;
105 | grid-column-gap: 2rem;
106 | width: calc(100% - 2rem);
107 | margin-left: var(--mb-2);
108 | margin-right: var(--mb-2);
109 | }
110 | .l-header{
111 | width: 100%;
112 | position: fixed;
113 | top: 0;
114 | left: 0;
115 | z-index: var(--z-fixed);
116 | background: var(--first-color);
117 | }
118 | /*=========== NAV ===============*/
119 | .nav{
120 | height: var(--header-height);
121 | display: flex;
122 | justify-content: space-between;
123 | align-items: center;
124 | }
125 | @media screen and (max-width: 768px) {
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: rgba(255, 255, 255, .3);
134 | transition: .5s;
135 | backdrop-filter: blur(10px);
136 | }
137 | }
138 | .nav__item{
139 | margin-bottom: var(--mb-4);
140 | }
141 | .nav__link{
142 | position: relative;
143 | color: var(--dark-color);
144 | }
145 | .nav__link:hover{
146 | color: var(--first-color);
147 | }
148 | .nav__logo{
149 | color: var(--white-color);
150 | }
151 | .nav__toggle{
152 | color: var(--white-color);
153 | font-size: 1.5rem;
154 | cursor: pointer;
155 | }
156 | /*=========== SHOW MENU ===============*/
157 | .show{
158 | right: 0;
159 | }
160 |
161 | /*=========== ACTIVE MENU ===============*/
162 | .active::after{
163 | position: absolute;
164 | content: "";
165 | width: 100%;
166 | height: .18rem;
167 | left: 0;
168 | top: 2rem;
169 | background: var(--first-color);
170 | }
171 | /**/
172 | .home{
173 | position: relative;
174 | background-color: var(--first-color);
175 | overflow: hidden;
176 | }
177 | .home__container{
178 | height: calc(100vh - var(--header-height));
179 | row-gap: 5rem;
180 | }
181 | .home__title{
182 | align-self: flex-end;
183 | font-size: var(--big-font-size);
184 | color: var(--white-color);
185 | line-height: .8;
186 | }
187 | .home__title span{
188 | text-shadow: 0 20px 25px rgba(0,0,0,.5);
189 | }
190 | .home__scroll{
191 | align-self: flex-end;
192 | padding-bottom: var(--mb-4);
193 | }
194 | .home__scroll-link{
195 | writing-mode: vertical-lr;
196 | transform: rotate(-180deg);
197 | color: var(--white-color);
198 | }
199 | .home__img{
200 | position: absolute;
201 | right: 0;
202 | bottom: 0;
203 | width: 295px;
204 | }
205 |
206 | /**/
207 | .about__container{
208 | justify-items: center;
209 | row-gap: 2rem;
210 | text-align: center;
211 | }
212 | .about__img{
213 | display: flex;
214 | justify-content: center;
215 | padding-top: 1rem;
216 | width: 120px;
217 | height: 120px;
218 | background: var(--first-color);
219 | border-radius: 50%;
220 | overflow: hidden;
221 | }
222 | .about__img img{
223 | width: 100px;
224 | }
225 | .about__subtitle{
226 | font-size: var(--h2-font-size);
227 | color: var(--first-color);
228 | margin-bottom: var(--mb-4);
229 | }
230 | .about__text{
231 | margin-bottom: var(--mb-4);
232 | }
233 | .about__profession{
234 | display: block;
235 | margin-bottom: var(--mb-4);
236 | }
237 | .about__social-icon{
238 | font-size: 1.4rem;
239 | margin: 0 var(--mb-1);
240 | }
241 | .about__social-icon:hover{
242 | color: var(--first-color);
243 | }
244 |
245 |
246 | /**/
247 | .skills__container{
248 | row-gap: 2rem;
249 | }
250 | .skills__subtitle{
251 | color: var(--first-color);
252 | margin-bottom: var(--mb-3);
253 | }
254 | .skills__name{
255 | display: inline-block;
256 | font-size: var(--small-font-size);
257 | margin-right: var(--mb-2);
258 | margin-bottom: var(--mb-3);
259 | padding: .25rem .5rem;
260 | background: var(--white-color);
261 | border-radius: .25rem;
262 | }
263 | .skills__name:hover{
264 | background: var(--first-color);
265 | color: var(--white-color);
266 | }
267 | .skills__img img{
268 | border-radius: .5rem;
269 | }
270 |
271 |
272 |
273 | /**/
274 | .portfolio{
275 | background: var(--white-color);
276 | }
277 | .portfolio__container{
278 | justify-content: center;
279 | row-gap: 2rem;
280 | }
281 | .portfolio__img{
282 | position: relative;
283 | overflow: hidden;
284 | }
285 | .portfolio__img img{
286 | border-radius: .5rem;
287 | }
288 | .portfolio__link{
289 | position: absolute;
290 | bottom: -100%;
291 | width: 100%;
292 | height: 100%;
293 | display: flex;
294 | justify-content: center;
295 | align-items: center;
296 | background: rgba(255, 255, 255, .3);
297 | border-radius: .5rem;
298 | cursor: pointer;
299 | backdrop-filter: blur(10px);
300 | transition: .3s linear;
301 | }
302 | .portfolio__img:hover .portfolio__link{
303 | bottom: 0;
304 | }
305 | .portfolio__link-name{
306 | color: var(--dark-color);
307 | }
308 |
309 | /**/
310 | .contact__container{
311 | row-gap: 2rem;
312 | }
313 | .contact__subtitle{
314 | font-size: var(--normal-font-size);
315 | color: var(--first-color);
316 | }
317 | .contact__text{
318 | display: inline-block;
319 | margin-bottom: var(--mb-2);
320 | }
321 | .contact__inputs{
322 | display: grid;
323 | grid-template-columns: repeat(2, 1fr);
324 | column-gap: 1rem;
325 | }
326 | .contact__input{
327 | width: 100%;
328 | padding: .8rem;
329 | outline: none;
330 | border: 1.5px solid var(--dark-color);
331 | font-size: var(--normal-font-size);
332 | margin-bottom: var(--mb-4);
333 | border-radius: .5rem;
334 | }
335 | .contact__button{
336 | display: block;
337 | background: var(--first-color);
338 | color: var(--white-color);
339 | padding: .75rem 2.5rem;
340 | margin-left: auto;
341 | border-radius: .5rem;
342 | border: none;
343 | font-size: var(--normal-font-size);
344 | cursor: pointer;
345 | }
346 | /*footer*/
347 | .footer{
348 | background-color: var(--dark-color);
349 | }
350 | .footer__container{
351 | row-gap: 2rem;
352 | }
353 | .footer__title{
354 | font-size: var(--normal-font-size);
355 | color: var(--white-color);
356 | margin-bottom: var(--mb-2);
357 | }
358 | .footer__link{
359 | padding: .25rem 0;
360 | }
361 | .footer__link:hover{
362 | color: var(--first-color);
363 | }
364 | .footer__social{
365 | font-size: 1.4rem;
366 | margin-right: var(--mb-1);
367 | }
368 | .footer__social:hover{
369 | color: var(--first-color);
370 | }
371 |
372 | /*========= MEDIA QUERY ============*/
373 |
374 | @media screen and (min-width: 768px) {
375 | body{
376 | margin: 0;
377 | }
378 | .section{
379 | padding-top: 4rem;
380 | }
381 | .section-title{
382 | margin-bottom: 3rem;
383 | }
384 | .section-title::after{
385 | width: 64px;
386 | top: 3rem;
387 | }
388 |
389 | .nav{
390 | height: calc(var(--header-height) + 1rem)
391 | }
392 | .nav__list{
393 | display: flex;
394 | }
395 | .nav__item{
396 | margin-left: var(--mb-4);
397 | margin-bottom: 0;
398 | }
399 | .nav__toggle{
400 | display: none;
401 | }
402 | .nav__link{
403 | color: var(--white-color);
404 | }
405 | .nav__link:hover{
406 | color: var(--white-color);
407 | }
408 | .active::after{
409 | background-color: var(--white-color);
410 | }
411 |
412 | .home__container{
413 | height: 100vh;
414 | grid-template-rows: 1.7fr 1fr;
415 | row-gap: 0;
416 | }
417 | .home__img{
418 | width: 524px;
419 | right: 10%;
420 | }
421 |
422 | .about__container{
423 | grid-template-columns: repeat(2, 1fr);
424 | align-items: center;
425 | text-align: initial;
426 | padding: 4rem 0;
427 | }
428 | .about__img{
429 | width: 200px;
430 | height: 200px;
431 | }
432 | .about__img img{
433 | width: 165px;
434 | }
435 | .skills__container{
436 | grid-template-columns: repeat(2, 1fr);
437 | align-items: center;
438 | }
439 | .portfolio__container{
440 | grid-template-columns: repeat(3, 1fr);
441 | grid-template-rows: repeat(2, 1fr);
442 | column-gap: 2rem;
443 | }
444 | .contact__container{
445 | grid-template-columns: repeat(2, 1fr);
446 | justify-items: center;
447 | }
448 | .contact__form{
449 | width: 380px;
450 | }
451 |
452 | .footer__container{
453 | grid-template-columns: repeat(3, 1fr);
454 | justify-items: center;
455 | }
456 | }
457 | @media screen and (min-width: 1024px){
458 | .bd-grid{
459 | margin-left: auto;
460 | margin-right: auto;
461 | }
462 | }
463 |
464 |
465 |
466 |
467 |
468 |
469 |
470 |
471 |
472 |
473 |
474 |
475 |
476 |
477 |
478 |
--------------------------------------------------------------------------------