├── .vscode
└── settings.json
├── assets
├── Doc1.pdf
├── css
│ └── style.css
├── images
│ ├── Testimonials1.png
│ ├── about-banner.png
│ ├── adobe-xd.png
│ ├── ajax.png
│ ├── angular.png
│ ├── avatar-1.png
│ ├── avatar-2.png
│ ├── avatar-3.png
│ ├── avatar-4.png
│ ├── bootstrap.png
│ ├── clickup.png
│ ├── command.png
│ ├── css3.png
│ ├── favicon.ico
│ ├── firebase.png
│ ├── git.png
│ ├── gulp.png
│ ├── hero-banner-md.png
│ ├── hero-banner-sm.png
│ ├── hero-banner.png
│ ├── html5.png
│ ├── icon-app.svg
│ ├── icon-design.svg
│ ├── icon-dev.svg
│ ├── icon-photo.svg
│ ├── icon-quote.svg
│ ├── javascript.png
│ ├── jquery.png
│ ├── logo.ico
│ ├── logo.svg
│ ├── my-avatar.png
│ ├── npm.png
│ ├── photoshop.png
│ ├── pp.png
│ ├── project-1.jpg
│ ├── project-1.png
│ ├── project-2.png
│ ├── project-3.png
│ ├── project-4.png
│ ├── project-5.png
│ ├── project-6.png
│ ├── project-7.png
│ ├── project-9.png
│ ├── pugjs.png
│ ├── react.png
│ ├── sass.png
│ ├── slack.png
│ ├── stats-card_icon-1.png
│ ├── stats-card_icon-2.png
│ ├── stats-card_icon-3.png
│ ├── testimonials satish.jpg
│ ├── trello.png
│ ├── typescript.png
│ ├── vs-code.png
│ ├── vue.png
│ └── webpack.png
└── js
│ └── script.js
├── index.html
├── style-guide.md
└── vcard
├── .vscode
└── settings.json
├── Index.html
└── assets
├── css
└── style.css
├── images
├── Testimonials1.png
├── favicon.ico
├── icon-app.svg
├── icon-design.svg
├── icon-dev.svg
├── icon-photo.svg
├── icon-quote.svg
├── logo.ico
├── logo.svg
├── pp.png
└── testimonials satish.jpg
└── js
└── script.js
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "liveServer.settings.port": 5501
3 | }
4 |
--------------------------------------------------------------------------------
/assets/Doc1.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/Doc1.pdf
--------------------------------------------------------------------------------
/assets/css/style.css:
--------------------------------------------------------------------------------
1 | /*-----------------------------------*\
2 | * style.css
3 | \*-----------------------------------*/
4 |
5 | /**
6 | * copyright 2022 codewithsadee
7 | */
8 |
9 | /*-----------------------------------*\
10 | * #CUSTOM PROPERTY
11 | \*-----------------------------------*/
12 |
13 | :root {
14 | /**
15 | * colors
16 | */
17 | --raw-seinna: hsl(24, 74%, 58%);
18 | --sizzling-sunrise: hsl(51, 95%, 54%);
19 | --scarlet: hsl(13, 96%, 47%);
20 | --black: hsl(0, 0%, 0%);
21 | --white: hsl(0, 0%, 100%);
22 | /**
23 | * typography
24 | */
25 | --ff-saira-stencil-one: "Saira Stencil One", sans-serif;
26 | --ff-poppins: "Poppins", sans-serif;
27 | --ff-roboto: "Roboto", sans-serif;
28 | --fs-1: 2rem;
29 | --fs-2: calc(1.813rem + 1vw);
30 | --fs-3: calc(1.313rem + 1vw);
31 | --fs-4: 1.4rem;
32 | --fs-5: 1rem;
33 | --fs-6: 0.813rem;
34 | --fs-7: 0.75rem;
35 | --fw-400: 400;
36 | --fw-700: 700;
37 | /**
38 | * transition
39 | */
40 | --transition-1: 0.25s ease-in-out;
41 | /**
42 | * spacing
43 | */
44 | --section-padding: 80px;
45 | /**
46 | * radius
47 | */
48 | --radius-4: 4px;
49 | --radius-12: 12px;
50 | }
51 |
52 | /*-----------------------------------*\
53 | * #THEME COLORS
54 | \*-----------------------------------*/
55 |
56 | body.dark_theme {
57 | --bg-primary: hsl(0, 0%, 12%);
58 | --bg-secondary: hsl(0, 0%, 19%);
59 | --color-primary: hsl(0, 0%, 100%);
60 | --color-secondary: hsl(0, 0%, 62%);
61 | --card-shadow: hsla(0, 0%, 0%, 0.4);
62 | --input-bg: hsl(0, 0%, 16%);
63 | --shadow-1: 10px 10px 40px var(--card-shadow);
64 | }
65 |
66 | body.light_theme {
67 | --bg-primary: hsl(0, 0%, 90%);
68 | --bg-secondary: hsl(0, 0%, 100%);
69 | --color-primary: hsl(0, 0%, 12%);
70 | --color-secondary: hsl(0, 0%, 37%);
71 | --card-shadow: hsla(0, 0%, 0%, 0.1);
72 | --input-bg: hsl(0, 0%, 93%);
73 | --shadow-1: 10px 10px 40px var(--card-shadow);
74 | }
75 |
76 | /*-----------------------------------*\
77 | * #RESET
78 | \*-----------------------------------*/
79 |
80 | *,
81 | *::before,
82 | *::after {
83 | margin: 0;
84 | padding: 0;
85 | box-sizing: border-box;
86 | }
87 |
88 | li {
89 | list-style: none;
90 | }
91 |
92 | a {
93 | text-decoration: none;
94 | }
95 |
96 | a,
97 | img,
98 | time,
99 | span,
100 | input,
101 | label,
102 | select,
103 | button,
104 | textarea,
105 | ion-icon {
106 | display: block;
107 | }
108 |
109 | input,
110 | button,
111 | select,
112 | textarea {
113 | background: none;
114 | border: none;
115 | font: inherit;
116 | }
117 |
118 | button,
119 | select {
120 | cursor: pointer;
121 | }
122 |
123 | input,
124 | textarea {
125 | width: 100%;
126 | }
127 |
128 | ion-icon {
129 | pointer-events: none;
130 | }
131 |
132 | :is(a, button, select) {
133 | outline-color: var(--scarlet);
134 | outline-offset: 3px;
135 | }
136 |
137 | ::selection {
138 | background: var(--color-primary);
139 | color: var(--bg-primary);
140 | }
141 |
142 | html {
143 | font-family: var(--ff-roboto);
144 | scroll-behavior: smooth;
145 | }
146 |
147 | body {
148 | background: var(--bg-primary);
149 | transition: var(--transition-1);
150 | }
151 |
152 | body.active {
153 | overflow: hidden;
154 | }
155 |
156 | /*-----------------------------------*\
157 | * #REUSED STYLE
158 | \*-----------------------------------*/
159 |
160 | .container {
161 | padding-inline: 10px;
162 | }
163 |
164 | .h1 {
165 | font-size: var(--fs-1);
166 | line-height: 1.2;
167 | font-weight: 400;
168 | }
169 |
170 | .h2,
171 | .h3,
172 | .h4 {
173 | color: var(--color-primary);
174 | font-family: var(--ff-poppins);
175 | line-height: 1.2;
176 | }
177 |
178 | .h2 {
179 | font-size: var(--fs-2);
180 | }
181 |
182 | .h3 {
183 | font-size: var(--fs-3);
184 | }
185 |
186 | .h4 {
187 | font-size: var(--fs-5);
188 | }
189 |
190 | .w-100 {
191 | width: 100%;
192 | }
193 |
194 | .btn {
195 | max-width: max-content;
196 | color: var(--color-primary);
197 | font-weight: var(--fw-700);
198 | text-transform: uppercase;
199 | letter-spacing: 0.5px;
200 | padding: 10px 25px;
201 | border: 1px solid transparent;
202 | border-radius: var(--radius-4);
203 | transition: var(--transition-1);
204 | }
205 |
206 | .btn-primary {
207 | border-color: red;
208 | }
209 |
210 | .btn-primary:is(:hover, :focus) {
211 | background: red;
212 | color: var(--bg-primary);
213 | }
214 |
215 | .btn-secondary {
216 | background: var(--raw-seinna);
217 | border-color: var(--raw-seinna);
218 | color: var(--black);
219 | }
220 |
221 | .btn-secondary:is(:hover, :focus) {
222 | --raw-seinna: hsl(133, 100%, 47%);
223 | }
224 |
225 | .section-subtitle {
226 | position: relative;
227 | color: var(--color-secondary);
228 | text-transform: uppercase;
229 | padding-bottom: 5px;
230 | margin-bottom: 20px;
231 | }
232 |
233 | .section-subtitle::after {
234 | content: "";
235 | position: absolute;
236 | top: 100%;
237 | left: 0;
238 | width: 60px;
239 | height: 2px;
240 | background: var(--color-secondary);
241 | }
242 |
243 | .section-title {
244 | max-width: 350px;
245 | margin-bottom: 30px;
246 | }
247 |
248 | .section-text {
249 | color: var(--color-secondary);
250 | line-height: 1.8;
251 | margin-bottom: 30px;
252 | }
253 |
254 | .tooltip {
255 | position: absolute;
256 | top: -40px;
257 | background: var(--raw-seinna);
258 | min-width: max-content;
259 | color: var(--white);
260 | font-size: 15px;
261 | font-weight: var(--fw-700);
262 | padding: 5px 10px;
263 | border-radius: var(--radius-4);
264 | box-shadow: var(--shadow-1);
265 | transform: translateY(-10px);
266 | opacity: 0;
267 | pointer-events: none;
268 | transition: var(--transition-1);
269 | z-index: 1;
270 | }
271 |
272 | /*-----------------------------------*\
273 | * #HEADER
274 | \*-----------------------------------*/
275 |
276 | .header {
277 | padding-block: 15px;
278 | position: fixed;
279 | top: 0;
280 | left: 0;
281 | width: 100%;
282 | transition: var(--transition-1);
283 | z-index: 4;
284 | }
285 |
286 | .header.active {
287 | padding-block: 12px;
288 | background: var(--bg-secondary);
289 | box-shadow: var(--shadow-1);
290 | }
291 |
292 | .header .container {
293 | display: flex;
294 | justify-content: space-between;
295 | align-items: center;
296 | gap: 10px;
297 | }
298 |
299 | .logo {
300 | position: relative;
301 | min-width: 77px;
302 | z-index: 2;
303 | }
304 |
305 | .logo a {
306 | color: var(--color-primary);
307 | font-family: var(--ff-saira-stencil-one);
308 | }
309 |
310 | .logo span {
311 | display: inline-block;
312 | color: var(--raw-seinna);
313 | margin-left: 2px;
314 | }
315 |
316 | .navbar-actions {
317 | display: flex;
318 | align-items: center;
319 | gap: 15px;
320 | margin-left: auto;
321 | }
322 |
323 | .navbar-actions select {
324 | color: var(--color-primary);
325 | width: 45px;
326 | }
327 |
328 | .navbar-actions option {
329 | background: var(--bg-primary);
330 | color: var(--color-primary);
331 | }
332 |
333 | .theme-btn {
334 | padding: 4px;
335 | width: 48px;
336 | background: var(--bg-secondary);
337 | border-radius: 100px;
338 | transition: var(--transition-1);
339 | }
340 |
341 | .header.active .theme-btn {
342 | background: var(--bg-primary);
343 | }
344 |
345 | .theme-btn .icon {
346 | position: relative;
347 | left: 0;
348 | width: 20px;
349 | height: 20px;
350 | border-radius: 50px;
351 | box-shadow: inset 9px -6px var(--color-primary);
352 | transition: var(--transition-1);
353 | }
354 |
355 | .theme-btn.active .icon {
356 | left: 20px;
357 | box-shadow: inset 20px -20px var(--sizzling-sunrise);
358 | }
359 |
360 | .nav-toggle-btn {
361 | position: relative;
362 | transform: rotate(-55deg);
363 | transition: var(--transition-1);
364 | z-index: 2;
365 | }
366 |
367 | .nav-toggle-btn.active {
368 | transform: rotate(-45deg);
369 | }
370 |
371 | .nav-toggle-btn span {
372 | width: 20px;
373 | height: 2px;
374 | background: var(--color-primary);
375 | margin: 5px;
376 | transition: var(--transition-1);
377 | }
378 |
379 | .nav-toggle-btn :is(.one, .three) {
380 | width: 10px;
381 | }
382 |
383 | .nav-toggle-btn .one {
384 | margin-left: auto;
385 | transform-origin: left;
386 | }
387 |
388 | .nav-toggle-btn .three {
389 | transform-origin: right;
390 | }
391 |
392 | .nav-toggle-btn.active .one {
393 | transform: rotate(90deg) translateX(-3px);
394 | }
395 |
396 | .nav-toggle-btn.active .three {
397 | transform: rotate(90deg) translateX(3px);
398 | }
399 |
400 | .navbar {
401 | position: fixed;
402 | background: var(--bg-secondary);
403 | top: 100%;
404 | left: 0;
405 | width: 100%;
406 | height: 100%;
407 | display: grid;
408 | place-items: center;
409 | visibility: hidden;
410 | transition: 0.75s cubic-bezier(0.71, 0.01, 0.24, 0.99);
411 | transition-delay: 0.5s;
412 | z-index: 1;
413 | }
414 |
415 | .navbar.active {
416 | top: 0;
417 | visibility: visible;
418 | transition-delay: 0s;
419 | }
420 |
421 | .navbar-list > li {
422 | margin-block: 20px;
423 | padding-inline: 50px;
424 | overflow: hidden;
425 | }
426 |
427 | .navbar-link {
428 | position: relative;
429 | width: max-content;
430 | margin-inline: auto;
431 | color: var(--color-primary);
432 | font-family: var(--ff-poppins);
433 | font-size: var(--fs-1);
434 | padding: 10px;
435 | transform: translateY(50px);
436 | transition: 0.75s cubic-bezier(0.68, -0.55, 0.27, 2);
437 | }
438 |
439 | .navbar.active .navbar-link {
440 | transform: translateY(0);
441 | transition-delay: 0.5s;
442 | }
443 |
444 | .navbar-link::before {
445 | content: "";
446 | position: absolute;
447 | top: 50%;
448 | transform: translateY(-50%);
449 | left: 0;
450 | height: 5px;
451 | width: 0;
452 | background: var(--raw-seinna);
453 | transition: var(--transition-1);
454 | }
455 |
456 | .navbar-link:is(:hover, :focus)::before {
457 | width: 100%;
458 | }
459 |
460 | /*-----------------------------------*\
461 | * #HERO
462 | \*-----------------------------------*/
463 |
464 | main {
465 | overflow-x: hidden;
466 | }
467 |
468 | .hero {
469 | min-height: 100vh;
470 | display: flex;
471 | flex-direction: column;
472 | justify-content: center;
473 | align-items: center;
474 | padding-top: 115px;
475 | margin-bottom: var(--section-padding);
476 | }
477 |
478 | .hero-banner {
479 | max-width: 500px;
480 | width: 125%;
481 | margin-bottom: 30px;
482 | }
483 |
484 | :is(.hero-social-list, .scroll-down) {
485 | display: none;
486 | }
487 |
488 | .hero-content {
489 | max-width: 450px;
490 | }
491 |
492 | .hero-title {
493 | text-align: center;
494 | margin-bottom: 30px;
495 | }
496 |
497 | .hero .btn-primary {
498 | margin-inline: auto;
499 | }
500 |
501 | /*-----------------------------------*\
502 | * #STATS
503 | \*-----------------------------------*/
504 |
505 | .stats {
506 | padding-block: var(--section-padding);
507 | }
508 |
509 | .stats-list {
510 | display: grid;
511 | gap: 30px;
512 | }
513 |
514 | .stats-card {
515 | background: var(--bg-secondary);
516 | display: flex;
517 | align-items: center;
518 | gap: 10px;
519 | padding: 25px;
520 | border-radius: var(--radius-12);
521 | box-shadow: var(--shadow-1);
522 | transition: var(--transition-1);
523 | }
524 |
525 | .stats-card:is(:hover, :focus) {
526 | transform: translateY(-5px);
527 | }
528 |
529 | .stats-card .card-icon {
530 | background: var(--raw-seinna);
531 | width: 60px;
532 | height: 60px;
533 | display: grid;
534 | place-items: center;
535 | border-radius: 50%;
536 | }
537 |
538 | .stats-card .card-icon img {
539 | width: 70%;
540 | filter: invert(1);
541 | }
542 |
543 | .stats-card .card-title {
544 | width: calc(100% - 95px);
545 | color: var(--raw-seinna);
546 | text-align: center;
547 | }
548 |
549 | .stats-card .card-title strong {
550 | display: block;
551 | color: var(--color-primary);
552 | font-size: initial;
553 | line-height: 1.3;
554 | margin-top: 5px;
555 | }
556 |
557 | .stats-card > ion-icon {
558 | color: var(--color-secondary);
559 | }
560 |
561 | /*-----------------------------------*\
562 | * #ABOUT
563 | \*-----------------------------------*/
564 |
565 | .about {
566 | padding-block: var(--section-padding);
567 | }
568 |
569 | .about-banner {
570 | max-width: 400px;
571 | margin-inline: auto;
572 | margin-bottom: 80px;
573 | }
574 |
575 | .about .btn {
576 | max-width: unset;
577 | width: 100%;
578 | }
579 |
580 | .about .btn-secondary {
581 | margin-bottom: 10px;
582 | }
583 |
584 | /*-----------------------------------*\
585 | * #SKILLS
586 | \*-----------------------------------*/
587 |
588 | .skills {
589 | padding-block: var(--section-padding);
590 | }
591 |
592 | .skills-content {
593 | margin-bottom: 50px;
594 | }
595 |
596 | .skills-toggle {
597 | background: var(--bg-secondary);
598 | position: relative;
599 | width: max-content;
600 | margin-inline: auto;
601 | display: flex;
602 | align-items: center;
603 | padding: 5px;
604 | border-radius: 100px;
605 | box-shadow: var(--shadow-1);
606 | z-index: 1;
607 | }
608 |
609 | .skills-toggle::before {
610 | content: "";
611 | position: absolute;
612 | top: 5px;
613 | left: 5px;
614 | bottom: 5px;
615 | width: 93px;
616 | background: var(--raw-seinna);
617 | border-radius: 100px;
618 | transition: var(--transition-1);
619 | z-index: -1;
620 | }
621 |
622 | .skills-toggle.active::before {
623 | left: 98px;
624 | width: 94px;
625 | }
626 |
627 | .toggle-btn {
628 | color: var(--color-primary);
629 | font-family: var(--ff-poppins);
630 | padding: 5px 25px;
631 | transition: var(--transition-1);
632 | }
633 |
634 | .toggle-btn.active {
635 | color: var(--white);
636 | }
637 |
638 | .skills-box.active .skills-list,
639 | .skills-box .tools-list {
640 | display: none;
641 | }
642 |
643 | .skills-box .skills-list,
644 | .skills-box.active .tools-list {
645 | display: flex;
646 | flex-wrap: wrap;
647 | justify-content: center;
648 | align-items: center;
649 | gap: 15px;
650 | animation: fadeIn 0.5s ease-out forwards;
651 | }
652 |
653 | @keyframes fadeIn {
654 | 0% {
655 | opacity: 0;
656 | }
657 | 100% {
658 | opacity: 1;
659 | }
660 | }
661 |
662 | .skill-card {
663 | position: relative;
664 | background: var(--bg-secondary);
665 | width: 80px;
666 | height: 80px;
667 | display: grid;
668 | place-items: center;
669 | border-radius: var(--radius-12);
670 | box-shadow: var(--shadow-1);
671 | cursor: help;
672 | }
673 |
674 | .skill-card:hover .tooltip {
675 | transform: translateY(0);
676 | opacity: 1;
677 | }
678 |
679 | /*-----------------------------------*\
680 | * #PROJECT
681 | \*-----------------------------------*/
682 |
683 | .project {
684 | padding-block: var(--section-padding);
685 | }
686 |
687 | .project-list > li {
688 | margin-bottom: 25px;
689 | }
690 |
691 | .project-card {
692 | position: relative;
693 | overflow: hidden;
694 | border-radius: var(--radius-12);
695 | box-shadow: 2px 4px 6px hsla(0, 0%, 0%, 0.2);
696 | }
697 |
698 | .project-card::after {
699 | content: "";
700 | position: absolute;
701 | inset: 0;
702 | border-radius: inherit;
703 | transition: var(--transition-1);
704 | }
705 |
706 | .project-card:is(:hover, :focus)::after {
707 | background: hsla(0, 0%, 100%, 0.1);
708 | backdrop-filter: blur(0.5px);
709 | }
710 |
711 | .project-card .card-content {
712 | position: absolute;
713 | bottom: 0;
714 | left: 0;
715 | width: 100%;
716 | padding: 20px;
717 | }
718 |
719 | .project-card .card-title {
720 | margin-bottom: 10px;
721 | }
722 |
723 | .project-card :is(.card-title, .publish-date) {
724 | background: var(--bg-primary);
725 | padding: 6px 12px;
726 | width: max-content;
727 | box-shadow: var(--shadow-1);
728 | transform: translateY(20px);
729 | opacity: 0;
730 | transition: var(--transition-1);
731 | }
732 |
733 | .project-card .publish-date {
734 | font-size: var(--fs-6);
735 | color: var(--color-primary);
736 | transition-delay: 0s;
737 | }
738 |
739 | .project-card:is(:hover, :focus) :is(.card-title, .publish-date) {
740 | transform: translateY(0);
741 | opacity: 1;
742 | }
743 |
744 | .project-card:is(:hover, :focus) .publish-date {
745 | transition-delay: 0.1s;
746 | }
747 |
748 | .load-more {
749 | font-size: var(--fs-4);
750 | color: var(--raw-seinna);
751 | text-decoration: underline;
752 | margin-inline: auto;
753 | }
754 |
755 | /*-----------------------------------*\
756 | * #CONTACT
757 | \*-----------------------------------*/
758 |
759 | .contact {
760 | padding-block: var(--section-padding);
761 | }
762 |
763 | .contact-content {
764 | margin-bottom: 50px;
765 | }
766 |
767 | .contact-list-item {
768 | display: flex;
769 | align-items: flex-start;
770 | gap: 15px;
771 | margin-bottom: 20px;
772 | }
773 |
774 | .contact-item-icon {
775 | font-size: 25px;
776 | color: var(--color-primary);
777 | }
778 |
779 | .contact-item-icon ion-icon {
780 | --ionicon-stroke-width: 40px;
781 | }
782 |
783 | .contact-item-title {
784 | margin-bottom: 10px;
785 | }
786 |
787 | .contact-list-item .contact-info {
788 | color: var(--color-secondary);
789 | font-style: normal;
790 | line-height: 1.6;
791 | transition: var(--transition-1);
792 | }
793 |
794 | .contact-info:not(address):is(:hover, :focus) {
795 | color: var(--color-primary);
796 | }
797 |
798 | .contac-social-list {
799 | display: flex;
800 | flex-wrap: wrap;
801 | justify-content: flex-start;
802 | align-items: center;
803 | gap: 15px;
804 | padding-inline: 40px;
805 | }
806 |
807 | .contact-social-link {
808 | position: relative;
809 | background: var(--color-primary);
810 | color: var(--bg-primary);
811 | width: 35px;
812 | height: 35px;
813 | display: grid;
814 | place-items: center;
815 | border-radius: 50%;
816 | transition: var(--transition-1);
817 | }
818 |
819 | .contact-social-link:is(:hover, :focus) {
820 | background: var(--raw-seinna);
821 | color: var(--white);
822 | }
823 |
824 | .contact-social-link:is(:hover, :focus) .tooltip {
825 | transform: translateY(0);
826 | opacity: 1;
827 | }
828 |
829 | .contact-form {
830 | background: var(--bg-secondary);
831 | padding: 20px;
832 | border-radius: var(--radius-12);
833 | box-shadow: var(--shadow-1);
834 | }
835 |
836 | .form-wrapper {
837 | margin-bottom: 25px;
838 | }
839 |
840 | .form-label {
841 | color: var(--color-primary);
842 | font-size: var(--fs-7);
843 | font-family: var(--ff-poppins);
844 | margin-bottom: 8px;
845 | margin-left: 5px;
846 | }
847 |
848 | .input-wrapper {
849 | position: relative;
850 | }
851 |
852 | .input-field {
853 | background: var(--input-bg);
854 | color: var(--raw-seinna);
855 | padding: 10px;
856 | padding-left: 40px;
857 | border-radius: var(--radius-12);
858 | transition: var(--transition-1);
859 | }
860 |
861 | .input-wrapper ion-icon {
862 | position: absolute;
863 | top: 10px;
864 | left: 10px;
865 | color: var(--color-secondary);
866 | font-size: 20px;
867 | transition: var(--transition-1);
868 | }
869 |
870 | textarea.input-field {
871 | min-height: 60px;
872 | height: 120px;
873 | max-height: 200px;
874 | resize: vertical;
875 | }
876 |
877 | .input-field:focus {
878 | outline: 1px solid;
879 | }
880 |
881 | .input-field:focus + ion-icon {
882 | color: var(--raw-seinna);
883 | }
884 |
885 | .contact .btn-primary {
886 | max-width: unset;
887 | width: 100%;
888 | background: var(--color-primary);
889 | color: var(--bg-primary);
890 | }
891 |
892 | /*-----------------------------------*\
893 | * #FOOTER
894 | \*-----------------------------------*/
895 |
896 | .footer {
897 | background: var(--bg-secondary);
898 | padding-block: 20px;
899 | text-align: center;
900 | box-shadow: var(--shadow-1);
901 | }
902 |
903 | .footer .logo {
904 | margin-bottom: 15px;
905 | }
906 |
907 | .copyright {
908 | color: var(--color-secondary);
909 | line-height: 1.6;
910 | }
911 |
912 | .copyright a {
913 | display: inline-block;
914 | color: var(--raw-seinna);
915 | }
916 |
917 | /*-----------------------------------*\
918 | * #GO TO TOP
919 | \*-----------------------------------*/
920 |
921 | .go-top {
922 | position: fixed;
923 | bottom: 25px;
924 | right: 25px;
925 | width: 45px;
926 | height: 45px;
927 | display: grid;
928 | place-items: center;
929 | font-size: 20px;
930 | color: var(--color-primary);
931 | border: 2px solid var(--color-primary);
932 | border-radius: 50%;
933 | opacity: 0;
934 | pointer-events: none;
935 | transform: translateY(10px);
936 | transition: var(--transition-1);
937 | z-index: 2;
938 | }
939 |
940 | .go-top.active {
941 | opacity: 1;
942 | pointer-events: all;
943 | transform: translateY(0);
944 | }
945 |
946 | /*-----------------------------------*\
947 | * #MEDIA QUERIES
948 | \*-----------------------------------*/
949 |
950 | /**
951 | * responsive for larger than 550px screen
952 | */
953 |
954 | @media (min-width: 550px) {
955 | /**
956 | * REUSED STYLE
957 | */
958 | .container {
959 | max-width: 550px;
960 | margin-inline: auto;
961 | }
962 | .section-title {
963 | max-width: 380px;
964 | }
965 | /**
966 | * PROJECT
967 | */
968 | .project-list {
969 | column-count: 2;
970 | column-gap: 25px;
971 | }
972 | .project-list > li:first-child {
973 | column-span: all;
974 | }
975 | }
976 |
977 | /**
978 | * responsive for larger than 768px screen
979 | */
980 |
981 | @media (min-width: 768px) {
982 | /**
983 | * REUSED STYLE
984 | */
985 | .container {
986 | max-width: 720px;
987 | }
988 | .section-title {
989 | max-width: 430px;
990 | }
991 | /**
992 | * STATS
993 | */
994 | .stats-list {
995 | grid-template-columns: 1fr 1fr;
996 | }
997 | /**
998 | * ABOUT
999 | */
1000 | .btn-group {
1001 | display: flex;
1002 | justify-content: flex-start;
1003 | align-items: center;
1004 | gap: 20px;
1005 | }
1006 | .about .btn {
1007 | max-width: max-content;
1008 | }
1009 | .about .btn-secondary {
1010 | margin-bottom: 0;
1011 | }
1012 | /**
1013 | * CONTACT
1014 | */
1015 | .contact-form {
1016 | max-width: 450px;
1017 | margin-inline: auto;
1018 | }
1019 | }
1020 |
1021 | /**
1022 | * responsive for larger than 992px screen
1023 | */
1024 |
1025 | @media (min-width: 992px) {
1026 | /**
1027 | * CUSTOM PROPERTY
1028 | */
1029 | :root {
1030 | /**
1031 | * typography
1032 | */
1033 | --fs-2: 3rem;
1034 | /**
1035 | * spacing
1036 | */
1037 | --section-padding: 100px;
1038 | }
1039 | /**
1040 | * REUSED STYLE
1041 | */
1042 | .container {
1043 | max-width: 980px;
1044 | }
1045 | .section-content {
1046 | position: relative;
1047 | padding-left: 40px;
1048 | }
1049 | .section-subtitle {
1050 | position: absolute;
1051 | top: 0;
1052 | left: 0;
1053 | transform: rotate(0.75turn) translateX(-100%);
1054 | transform-origin: left top;
1055 | margin-bottom: 0;
1056 | }
1057 | .section-subtitle::after {
1058 | top: 8px;
1059 | left: auto;
1060 | right: calc(100% + 20px);
1061 | }
1062 | /**
1063 | * HEADER
1064 | */
1065 | .header {
1066 | padding-block: 30px;
1067 | }
1068 | .header.active {
1069 | padding-block: 15px;
1070 | }
1071 | .navbar-actions {
1072 | order: 1;
1073 | margin-left: 0;
1074 | }
1075 | .nav-toggle-btn {
1076 | display: none;
1077 | }
1078 | .navbar {
1079 | all: unset;
1080 | }
1081 | .navbar-link {
1082 | transform: translateY(0);
1083 | font-size: unset;
1084 | padding-inline: 5px;
1085 | }
1086 | .navbar-list > li {
1087 | margin: 0;
1088 | padding: 0;
1089 | overflow: visible;
1090 | }
1091 | .navbar-list {
1092 | display: flex;
1093 | justify-content: center;
1094 | align-items: center;
1095 | gap: 20px;
1096 | }
1097 | .navbar-link::before {
1098 | height: 2px;
1099 | }
1100 | /**
1101 | * HERO
1102 | */
1103 | .hero {
1104 | position: relative;
1105 | padding-top: 0;
1106 | height: 100vh;
1107 | }
1108 | .hero-banner {
1109 | max-width: unset;
1110 | height: 100%;
1111 | margin-bottom: 0;
1112 | }
1113 | .hero img {
1114 | height: 100%;
1115 | width: auto;
1116 | margin-inline: auto;
1117 | }
1118 | .hero-content {
1119 | --color-primary: var(--white);
1120 | position: absolute;
1121 | top: 50%;
1122 | filter: drop-shadow(2px 4px 10px var(--black));
1123 | }
1124 | .hero .btn-primary:is(:hover, :focus) {
1125 | color: hsl(0, 0%, 12%);
1126 | }
1127 | .hero-social-list {
1128 | display: block;
1129 | position: absolute;
1130 | bottom: 92px;
1131 | left: -30px;
1132 | }
1133 | .hero-social-list::after {
1134 | content: "";
1135 | position: absolute;
1136 | bottom: -40px;
1137 | left: 13px;
1138 | width: 2px;
1139 | height: 30px;
1140 | background: var(--color-secondary);
1141 | }
1142 | .hero-social-link {
1143 | position: relative;
1144 | color: var(--color-secondary);
1145 | margin-block: 5px;
1146 | padding: 5px;
1147 | font-size: 18px;
1148 | transition: var(--transition-1);
1149 | }
1150 | .hero-social-link:is(:hover, :focus) {
1151 | color: var(--color-primary);
1152 | }
1153 | .hero-social-link .tooltip {
1154 | --trans-x: 10px;
1155 | left: calc(100% + 10px);
1156 | top: 50%;
1157 | transform: translateY(-50%) translateX(var(--trans-x));
1158 | }
1159 | .hero-social-link:is(:hover, :focus) .tooltip {
1160 | --trans-x: 0;
1161 | opacity: 1;
1162 | }
1163 | .scroll-down {
1164 | display: block;
1165 | position: absolute;
1166 | bottom: 80px;
1167 | right: -30px;
1168 | color: var(--color-secondary);
1169 | font-size: 1.125rem;
1170 | text-transform: uppercase;
1171 | transform: rotate(90deg);
1172 | transform-origin: top right;
1173 | }
1174 | .scroll-down::after {
1175 | content: "";
1176 | position: absolute;
1177 | top: 8px;
1178 | right: -50px;
1179 | width: 30px;
1180 | height: 2px;
1181 | background: var(--color-secondary);
1182 | }
1183 | /**
1184 | * STATS
1185 | */
1186 | .stats-list {
1187 | grid-template-columns: repeat(3, 1fr);
1188 | }
1189 | .stats-card {
1190 | height: 100%;
1191 | }
1192 | /**
1193 | * ABOUT
1194 | */
1195 | .about {
1196 | display: grid;
1197 | grid-template-columns: 1fr 1fr;
1198 | align-items: center;
1199 | gap: 30px;
1200 | }
1201 | .about-banner {
1202 | margin-bottom: 0;
1203 | }
1204 | /**
1205 | * SKILLS
1206 | */
1207 | .skills {
1208 | display: grid;
1209 | grid-template-columns: 1fr 1fr;
1210 | align-items: center;
1211 | gap: 50px;
1212 | }
1213 | .skills-content {
1214 | margin-bottom: 0;
1215 | }
1216 | .skills-toggle {
1217 | margin-inline: 0;
1218 | }
1219 | /**
1220 | * PROJECT
1221 | */
1222 | .project-list {
1223 | column-count: 3;
1224 | }
1225 | .project-list > li:first-child {
1226 | column-span: unset;
1227 | margin: 25px;
1228 | margin-left: 0;
1229 | }
1230 | /**
1231 | * CONTACT
1232 | */
1233 | .contact {
1234 | display: grid;
1235 | grid-template-columns: 1fr 1fr;
1236 | gap: 30px;
1237 | }
1238 | .contact-content {
1239 | margin-bottom: 0;
1240 | }
1241 | .contact-form {
1242 | width: 100%;
1243 | }
1244 | .contact-list {
1245 | margin-left: -40px;
1246 | }
1247 | /**
1248 | * FOOTER
1249 | */
1250 | .footer .container {
1251 | display: flex;
1252 | justify-content: space-between;
1253 | align-items: center;
1254 | }
1255 | .footer .logo {
1256 | margin-bottom: 0;
1257 | }
1258 | }
1259 |
1260 | /**
1261 | * responsive for larger than 1200px screen
1262 | */
1263 |
1264 | @media (min-width: 1200px) {
1265 | /**
1266 | * REUSED STYLE
1267 | */
1268 | .container {
1269 | max-width: 1150px;
1270 | }
1271 | .section-title {
1272 | max-width: 460px;
1273 | }
1274 | /**
1275 | * HERO
1276 | */
1277 | .hero-social-list {
1278 | left: -80px;
1279 | }
1280 | .scroll-down {
1281 | right: -80px;
1282 | }
1283 | /**
1284 | * ABOUT
1285 | */
1286 | .about-banner {
1287 | max-width: 450px;
1288 | }
1289 | }
1290 |
--------------------------------------------------------------------------------
/assets/images/Testimonials1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/Testimonials1.png
--------------------------------------------------------------------------------
/assets/images/about-banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/about-banner.png
--------------------------------------------------------------------------------
/assets/images/adobe-xd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/adobe-xd.png
--------------------------------------------------------------------------------
/assets/images/ajax.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/ajax.png
--------------------------------------------------------------------------------
/assets/images/angular.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/angular.png
--------------------------------------------------------------------------------
/assets/images/avatar-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/avatar-1.png
--------------------------------------------------------------------------------
/assets/images/avatar-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/avatar-2.png
--------------------------------------------------------------------------------
/assets/images/avatar-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/avatar-3.png
--------------------------------------------------------------------------------
/assets/images/avatar-4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/avatar-4.png
--------------------------------------------------------------------------------
/assets/images/bootstrap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/bootstrap.png
--------------------------------------------------------------------------------
/assets/images/clickup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/clickup.png
--------------------------------------------------------------------------------
/assets/images/command.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/command.png
--------------------------------------------------------------------------------
/assets/images/css3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/css3.png
--------------------------------------------------------------------------------
/assets/images/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/favicon.ico
--------------------------------------------------------------------------------
/assets/images/firebase.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/firebase.png
--------------------------------------------------------------------------------
/assets/images/git.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/git.png
--------------------------------------------------------------------------------
/assets/images/gulp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/gulp.png
--------------------------------------------------------------------------------
/assets/images/hero-banner-md.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/hero-banner-md.png
--------------------------------------------------------------------------------
/assets/images/hero-banner-sm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/hero-banner-sm.png
--------------------------------------------------------------------------------
/assets/images/hero-banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/hero-banner.png
--------------------------------------------------------------------------------
/assets/images/html5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/html5.png
--------------------------------------------------------------------------------
/assets/images/icon-app.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/assets/images/icon-design.svg:
--------------------------------------------------------------------------------
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 |
28 |
--------------------------------------------------------------------------------
/assets/images/icon-dev.svg:
--------------------------------------------------------------------------------
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 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/assets/images/icon-photo.svg:
--------------------------------------------------------------------------------
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 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/assets/images/icon-quote.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/assets/images/javascript.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/javascript.png
--------------------------------------------------------------------------------
/assets/images/jquery.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/jquery.png
--------------------------------------------------------------------------------
/assets/images/logo.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/logo.ico
--------------------------------------------------------------------------------
/assets/images/logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/assets/images/my-avatar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/my-avatar.png
--------------------------------------------------------------------------------
/assets/images/npm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/npm.png
--------------------------------------------------------------------------------
/assets/images/photoshop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/photoshop.png
--------------------------------------------------------------------------------
/assets/images/pp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/pp.png
--------------------------------------------------------------------------------
/assets/images/project-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/project-1.jpg
--------------------------------------------------------------------------------
/assets/images/project-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/project-1.png
--------------------------------------------------------------------------------
/assets/images/project-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/project-2.png
--------------------------------------------------------------------------------
/assets/images/project-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/project-3.png
--------------------------------------------------------------------------------
/assets/images/project-4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/project-4.png
--------------------------------------------------------------------------------
/assets/images/project-5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/project-5.png
--------------------------------------------------------------------------------
/assets/images/project-6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/project-6.png
--------------------------------------------------------------------------------
/assets/images/project-7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/project-7.png
--------------------------------------------------------------------------------
/assets/images/project-9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/project-9.png
--------------------------------------------------------------------------------
/assets/images/pugjs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/pugjs.png
--------------------------------------------------------------------------------
/assets/images/react.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/react.png
--------------------------------------------------------------------------------
/assets/images/sass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/sass.png
--------------------------------------------------------------------------------
/assets/images/slack.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/slack.png
--------------------------------------------------------------------------------
/assets/images/stats-card_icon-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/stats-card_icon-1.png
--------------------------------------------------------------------------------
/assets/images/stats-card_icon-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/stats-card_icon-2.png
--------------------------------------------------------------------------------
/assets/images/stats-card_icon-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/stats-card_icon-3.png
--------------------------------------------------------------------------------
/assets/images/testimonials satish.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/testimonials satish.jpg
--------------------------------------------------------------------------------
/assets/images/trello.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/trello.png
--------------------------------------------------------------------------------
/assets/images/typescript.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/typescript.png
--------------------------------------------------------------------------------
/assets/images/vs-code.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/vs-code.png
--------------------------------------------------------------------------------
/assets/images/vue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/vue.png
--------------------------------------------------------------------------------
/assets/images/webpack.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/assets/images/webpack.png
--------------------------------------------------------------------------------
/assets/js/script.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | /**
4 | * element toggle function
5 | */
6 |
7 | const elemToggleFunc = function (elem) { elem.classList.toggle("active"); }
8 |
9 |
10 |
11 | /**
12 | * header sticky & go to top
13 | */
14 |
15 | const header = document.querySelector("[data-header]");
16 | const goTopBtn = document.querySelector("[data-go-top]");
17 |
18 | window.addEventListener("scroll", function () {
19 |
20 | if (window.scrollY >= 10) {
21 | header.classList.add("active");
22 | goTopBtn.classList.add("active");
23 | } else {
24 | header.classList.remove("active");
25 | goTopBtn.classList.remove("active");
26 | }
27 |
28 | });
29 |
30 |
31 |
32 | /**
33 | * navbar toggle
34 | */
35 |
36 | const navToggleBtn = document.querySelector("[data-nav-toggle-btn]");
37 | const navbar = document.querySelector("[data-navbar]");
38 |
39 | navToggleBtn.addEventListener("click", function () {
40 |
41 | elemToggleFunc(navToggleBtn);
42 | elemToggleFunc(navbar);
43 | elemToggleFunc(document.body);
44 |
45 | });
46 |
47 |
48 |
49 | /**
50 | * skills toggle
51 | */
52 |
53 | const toggleBtnBox = document.querySelector("[data-toggle-box]");
54 | const toggleBtns = document.querySelectorAll("[data-toggle-btn]");
55 | const skillsBox = document.querySelector("[data-skills-box]");
56 |
57 | for (let i = 0; i < toggleBtns.length; i++) {
58 | toggleBtns[i].addEventListener("click", function () {
59 |
60 | elemToggleFunc(toggleBtnBox);
61 | for (let i = 0; i < toggleBtns.length; i++) { elemToggleFunc(toggleBtns[i]); }
62 | elemToggleFunc(skillsBox);
63 |
64 | });
65 | }
66 |
67 |
68 |
69 | /**
70 | * dark & light theme toggle
71 | */
72 |
73 | const themeToggleBtn = document.querySelector("[data-theme-btn]");
74 |
75 | themeToggleBtn.addEventListener("click", function () {
76 |
77 | elemToggleFunc(themeToggleBtn);
78 |
79 | if (themeToggleBtn.classList.contains("active")) {
80 | document.body.classList.remove("dark_theme");
81 | document.body.classList.add("light_theme");
82 |
83 | localStorage.setItem("theme", "light_theme");
84 | } else {
85 | document.body.classList.add("dark_theme");
86 | document.body.classList.remove("light_theme");
87 |
88 | localStorage.setItem("theme", "dark_theme");
89 | }
90 |
91 | });
92 |
93 | /**
94 | * check & apply last time selected theme from localStorage
95 | */
96 |
97 | if (localStorage.getItem("theme") === "light_theme") {
98 | themeToggleBtn.classList.add("active");
99 | document.body.classList.remove("dark_theme");
100 | document.body.classList.add("light_theme");
101 | } else {
102 | themeToggleBtn.classList.remove("active");
103 | document.body.classList.remove("light_theme");
104 | document.body.classList.add("dark_theme");
105 | }
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Aashis Jha - PORTFOLIO
9 |
10 |
13 |
14 |
15 |
18 |
19 |
20 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
32 |
33 |
85 |
86 |
87 |
88 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
Software Engineer Digital Creator
103 |
104 |
Get in touch
105 |
106 |
107 |
164 |
165 | Scroll
166 |
167 |
168 |
171 |
172 |
215 |
216 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
About me
227 |
228 |
Hi,
229 |
I'm AASHIS JHA
230 |
SOFTWARE ENGINEER
231 |
232 |
233 | Hey there! I am a tech-savvy and creative powerhouse, blending my skills as a software engineer and digital creator to bring cutting-edge solutions and captivating content to life. Whether it's coding up a storm or crafting digital magic, I bring a unique
234 | blend of technical prowess and artistic vision to every project. Ready to push the limits of what's possible, I am always on the hunt for the next big challenge. Let's make something amazing together! I bring technical expertise
235 | and creative flair to each project. I have worked with creative teams, which involves daily stand-ups and communications, source control, and project management.
236 |
237 |
238 |
239 |
242 |
243 |
244 |
249 |
250 |
251 |
254 |
255 |
256 |
257 |
My skills
258 |
259 |
260 | What My Programming Skills Included?
261 |
262 |
263 |
264 | I develop simple, intuitive and responsive user interface that helps users get things done with less effort and time with those technologies.
265 |
266 |
267 |
268 | Skills
269 |
270 | Tools
271 |
272 |
273 |
274 |
275 |
276 |
277 |
278 |
HTML5
279 |
280 |
281 |
282 |
283 |
284 |
285 |
286 |
287 |
288 |
CSS3
289 |
290 |
291 |
292 |
293 |
294 |
295 |
296 |
297 |
298 |
JavaScript
299 |
300 |
301 |
302 |
303 |
304 |
305 |
306 |
307 |
308 |
TypeScript
309 |
310 |
311 |
312 |
313 |
314 |
315 |
316 |
317 |
318 |
jQuery
319 |
320 |
321 |
322 |
323 |
324 |
325 |
326 |
327 |
328 |
Bootstrap
329 |
330 |
331 |
332 |
333 |
334 |
335 |
336 |
337 |
338 |
Angular
339 |
340 |
341 |
342 |
343 |
344 |
345 |
346 |
347 |
348 |
React
349 |
350 |
351 |
352 |
353 |
354 |
355 |
356 |
357 |
358 |
Vue
359 |
360 |
361 |
362 |
363 |
364 |
365 |
366 |
367 |
368 |
Firebase
369 |
370 |
371 |
372 |
373 |
374 |
375 |
376 |
377 |
378 |
PugJs
379 |
380 |
381 |
382 |
383 |
384 |
385 |
386 |
387 |
388 |
SASS
389 |
390 |
391 |
392 |
393 |
394 |
395 |
396 |
397 |
518 |
519 |
520 |
521 |
524 |
525 |
677 |
678 |
681 |
682 |
854 |
855 |
856 |
857 |
860 |
861 |
873 |
874 |
877 |
878 |
879 |
880 |
881 |
882 |
885 |
886 |
887 |
890 |
894 |
898 |
899 |
--------------------------------------------------------------------------------
/style-guide.md:
--------------------------------------------------------------------------------
1 | # Essential Stuff
2 |
3 | ## Html import links
4 |
5 | Google font
6 |
7 | ``` html
8 |
9 |
10 |
13 | ```
14 |
15 | Ionicon
16 |
17 | ``` html
18 |
19 |
20 | ```
21 |
22 | ---
23 |
24 | ## Colors
25 |
26 | ``` css
27 | --raw-seinna: hsl(24, 74%, 58%);
28 | --sizzling-sunrise: hsl(51, 95%, 54%);
29 | --scarlet: hsl(13, 96%, 47%);
30 | --black: hsl(0, 0%, 0%);
31 | --white: hsl(0, 0%, 100%);
32 | ```
33 |
34 | ## Typography
35 |
36 | ``` css
37 | --ff-saira-stencil-one: "Saira Stencil One", sans-serif;
38 | --ff-poppins: 'Poppins', sans-serif;
39 | --ff-roboto: 'Roboto', sans-serif;
40 |
41 | --fs-1: 2rem;
42 | --fs-2: calc(1.813rem + 1vw);
43 | --fs-3: calc(1.313rem + 1vw);
44 | --fs-4: 1.4rem;
45 | --fs-5: 1rem;
46 | --fs-6: 0.813rem;
47 | --fs-7: 0.75rem;
48 |
49 | --fw-400: 400;
50 | --fw-700: 700;
51 | ```
52 |
53 | ## Transition
54 |
55 | ``` css
56 | --transition-1: 0.25s ease-in-out;
57 | ```
58 |
59 | ## Spacing
60 |
61 | ``` css
62 | --section-padding: 80px;
63 | ```
64 |
65 | ## Border radius
66 |
67 | ``` css
68 | --radius-4: 4px;
69 | --radius-12: 12px;
70 | ```
71 |
72 | ---
73 |
74 | ## Theme Variables
75 |
76 | ### Dark Mode
77 |
78 | ``` css
79 | --bg-primary: hsl(0, 0%, 12%);
80 | --bg-secondary: hsl(0, 0%, 19%);
81 | --color-primary: hsl(0, 0%, 100%);
82 | --color-secondary: hsl(0, 0%, 62%);
83 | --card-shadow: hsla(0, 0%, 0%, 0.4);
84 | --input-bg: hsl(0, 0%, 16%);
85 |
86 | --shadow-1: 10px 10px 40px var(--card-shadow);
87 | ```
88 |
89 | ### Light Mode
90 |
91 | ``` css
92 | --bg-primary: hsl(0, 0%, 90%);
93 | --bg-secondary: hsl(0, 0%, 100%);
94 | --color-primary: hsl(0, 0%, 12%);
95 | --color-secondary: hsl(0, 0%, 37%);
96 | --card-shadow: hsla(0, 0%, 0%, 0.1);
97 | --input-bg: hsl(0, 0%, 93%);
98 |
99 | --shadow-1: 10px 10px 40px var(--card-shadow);
100 | ```
101 |
--------------------------------------------------------------------------------
/vcard/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "liveServer.settings.port": 5502
3 | }
--------------------------------------------------------------------------------
/vcard/Index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | More About
8 |
9 |
12 |
17 |
18 |
21 |
22 |
23 |
26 |
27 |
28 |
32 |
33 |
34 |
35 |
38 |
39 |
40 |
43 |
44 |
158 |
159 |
162 |
163 |
164 |
167 |
168 |
169 |
170 |
171 | About
172 |
173 |
174 |
175 | Resume
176 |
177 |
178 |
179 |
180 |
183 |
184 |
185 |
188 |
189 |
190 |
191 | As a software engineer, full stack developer, and YouTuber, I
192 | bring a unique combination of technical expertise and creative
193 | problem-solving skills to my work. As a software engineer, I have
194 | a deep understanding of a wide range of programming languages and
195 | software development methodologies, allowing me to design,
196 | develop, and maintain complex software systems with ease. As a
197 | full stack developer, I have a comprehensive understanding of both
198 | front-end and back-end technologies, enabling me to create
199 | complete, end-to-end solutions. My experience as a YouTuber has
200 | given me a strong sense of digital media, and I am skilled at
201 | communicating complex technical concepts in an engaging and easily
202 | understandable way. I am a quick learner and a creative problem
203 | solver, with a strong work ethic and a passion for delivering
204 | high-quality software solutions.
205 |
206 |
207 |
208 |
211 |
212 |
213 | What i'm doing
214 |
215 |
216 |
217 |
218 |
224 |
225 |
226 |
227 |
Web design
228 |
229 |
230 | The most modern and high-quality design made at a
231 | professional level.
232 |
233 |
234 |
235 |
236 |
237 |
238 |
243 |
244 |
245 |
246 |
Web development
247 |
248 |
249 | High-quality development of sites at the professional level.
250 |
251 |
252 |
253 |
254 |
255 |
256 |
261 |
262 |
263 |
264 |
Mobile apps
265 |
266 |
267 | Professional development of applications for iOS and
268 | Android.
269 |
270 |
271 |
272 |
273 |
274 |
275 |
280 |
281 |
282 |
283 |
Photography
284 |
285 |
286 | I make high-quality photos of any category at a professional
287 | level.
288 |
289 |
290 |
291 |
292 |
293 |
294 |
297 |
298 |
299 | Testimonials
300 |
301 |
366 |
367 |
368 |
371 |
372 |
373 |
374 |
375 |
376 |
377 |
378 |
379 |
380 |
381 |
382 |
388 |
389 |
390 |
391 |
392 |
393 |
394 |
Rohit Jha
395 |
396 |
14 Jan, 2023
397 |
398 |
399 |
400 | Aashis' dedication to client satisfaction and wealth of
401 | experience have resulted in a successful corporate identity
402 | project. His consideration for the client's needs and goals,
403 | along with his ability to translate those into a distinctive
404 | and effective brand representation, sets him apart from
405 | others in the field. His commitment to excellence is evident
406 | in the work he produces and the satisfaction of his clients.
407 |
408 |
409 |
410 |
411 |
412 |
413 |
416 |
417 |
418 | Our Colabrations & Clients
419 |
420 |
442 |
443 |
444 |
445 |
448 |
449 |
450 |
453 |
454 |
455 |
456 |
457 |
458 |
459 |
460 |
Education
461 |
462 |
463 |
464 |
465 |
466 | University school of the arts
467 |
468 |
469 | 2007 — 2008
470 |
471 |
472 | Nemo enims ipsam voluptatem, blanditiis praesentium voluptum
473 | delenit atque corrupti, quos dolores et quas molestias
474 | exceptur.
475 |
476 |
477 |
478 |
479 | New york academy of art
480 |
481 | 2006 — 2007
482 |
483 |
484 | Ratione voluptatem sequi nesciunt, facere quisquams facere
485 | menda ossimus, omnis voluptas assumenda est omnis..
486 |
487 |
488 |
489 |
490 |
491 | High school of art and design
492 |
493 |
494 | 2002 — 2004
495 |
496 |
497 | Duis aute irure dolor in reprehenderit in voluptate, quila
498 | voluptas mag odit aut fugit, sed consequuntur magni dolores
499 | eos.
500 |
501 |
502 |
503 |
504 |
505 |
506 |
507 |
508 |
509 |
510 |
511 |
Experience
512 |
513 |
514 |
515 |
516 | Creative director
517 |
518 | 2015 — Present
519 |
520 |
521 | Nemo enim ipsam voluptatem blanditiis praesentium voluptum
522 | delenit atque corrupti, quos dolores et qvuas molestias
523 | exceptur.
524 |
525 |
526 |
527 |
528 | Art director
529 |
530 | 2013 — 2015
531 |
532 |
533 | Nemo enims ipsam voluptatem, blanditiis praesentium voluptum
534 | delenit atque corrupti, quos dolores et quas molestias
535 | exceptur.
536 |
537 |
538 |
539 |
540 | Web designer
541 |
542 | 2010 — 2013
543 |
544 |
545 | Nemo enims ipsam voluptatem, blanditiis praesentium voluptum
546 | delenit atque corrupti, quos dolores et quas molestias
547 | exceptur.
548 |
549 |
550 |
551 |
552 |
553 |
554 | My skills
555 |
556 |
557 |
558 |
559 |
Web design
560 | 80%
561 |
562 |
563 |
566 |
567 |
568 |
569 |
570 |
Graphic design
571 | 70%
572 |
573 |
574 |
577 |
578 |
579 |
580 |
581 |
Branding
582 | 90%
583 |
584 |
585 |
588 |
589 |
590 |
591 |
592 |
WordPress
593 | 50%
594 |
595 |
596 |
599 |
600 |
601 |
602 |
603 |
604 |
605 |
606 | Select category
607 |
608 |
609 |
610 |
611 |
612 |
613 |
614 |
615 |
616 |
619 |
620 |
621 |
624 |
628 |
632 |
633 |
634 |
--------------------------------------------------------------------------------
/vcard/assets/css/style.css:
--------------------------------------------------------------------------------
1 | /*-----------------------------------*\
2 | #style.css
3 | \*-----------------------------------*/
4 |
5 |
6 | /**
7 | * copyright 2022 @codewithsadee
8 | */
9 |
10 |
11 |
12 |
13 |
14 | /*-----------------------------------*\
15 | #CUSTOM PROPERTY
16 | \*-----------------------------------*/
17 |
18 | :root {
19 |
20 | /**
21 | * colors
22 | */
23 |
24 | /* gradient */
25 |
26 | --bg-gradient-onyx: linear-gradient(
27 | to bottom right,
28 | hsl(240, 1%, 25%) 3%,
29 | hsl(0, 0%, 19%) 97%
30 | );
31 | --bg-gradient-jet: linear-gradient(
32 | to bottom right,
33 | hsla(240, 1%, 18%, 0.251) 0%,
34 | hsla(240, 2%, 11%, 0) 100%
35 | ), hsl(240, 2%, 13%);
36 | --bg-gradient-yellow-1: linear-gradient(
37 | to bottom right,
38 | hsl(45, 100%, 71%) 0%,
39 | hsla(36, 100%, 69%, 0) 50%
40 | );
41 | --bg-gradient-yellow-2: linear-gradient(
42 | 135deg,
43 | hsla(45, 100%, 71%, 0.251) 0%,
44 | hsla(35, 100%, 68%, 0) 59.86%
45 | ), hsl(240, 2%, 13%);
46 | --border-gradient-onyx: linear-gradient(
47 | to bottom right,
48 | hsl(0, 0%, 25%) 0%,
49 | hsla(0, 0%, 25%, 0) 50%
50 | );
51 | --text-gradient-yellow: linear-gradient(
52 | to right,
53 | hsl(45, 100%, 72%),
54 | hsl(35, 100%, 68%)
55 | );
56 |
57 | /* solid */
58 |
59 | --jet: hsl(0, 0%, 22%);
60 | --onyx: hsl(240, 1%, 17%);
61 | --eerie-black-1: hsl(240, 2%, 13%);
62 | --eerie-black-2: hsl(240, 2%, 12%);
63 | --smoky-black: hsl(0, 0%, 7%);
64 | --white-1: hsl(0, 0%, 100%);
65 | --white-2: hsl(0, 0%, 98%);
66 | --orange-yellow-crayola: hsl(45, 100%, 72%);
67 | --vegas-gold: hsl(45, 54%, 58%);
68 | --light-gray: hsl(0, 0%, 84%);
69 | --light-gray-70: hsla(0, 0%, 84%, 0.7);
70 | --bittersweet-shimmer: hsl(0, 43%, 51%);
71 |
72 | /**
73 | * typography
74 | */
75 |
76 | /* font-family */
77 | --ff-poppins: 'Poppins', sans-serif;
78 |
79 | /* font-size */
80 | --fs-1: 24px;
81 | --fs-2: 18px;
82 | --fs-3: 17px;
83 | --fs-4: 16px;
84 | --fs-5: 15px;
85 | --fs-6: 14px;
86 | --fs-7: 13px;
87 | --fs-8: 11px;
88 |
89 | /* font-weight */
90 | --fw-300: 300;
91 | --fw-400: 400;
92 | --fw-500: 500;
93 | --fw-600: 600;
94 |
95 | /**
96 | * shadow
97 | */
98 |
99 | --shadow-1: -4px 8px 24px hsla(0, 0%, 0%, 0.25);
100 | --shadow-2: 0 16px 30px hsla(0, 0%, 0%, 0.25);
101 | --shadow-3: 0 16px 40px hsla(0, 0%, 0%, 0.25);
102 | --shadow-4: 0 25px 50px hsla(0, 0%, 0%, 0.15);
103 | --shadow-5: 0 24px 80px hsla(0, 0%, 0%, 0.25);
104 |
105 | /**
106 | * transition
107 | */
108 |
109 | --transition-1: 0.25s ease;
110 | --transition-2: 0.5s ease-in-out;
111 |
112 | }
113 |
114 |
115 |
116 |
117 |
118 | /*-----------------------------------*\
119 | #RESET
120 | \*-----------------------------------*/
121 |
122 | *, *::before, *::after {
123 | margin: 0;
124 | padding: 0;
125 | box-sizing: border-box;
126 | }
127 |
128 | a { text-decoration: none; }
129 |
130 | li { list-style: none; }
131 |
132 | img, ion-icon, a, button, time, span { display: block; }
133 |
134 | button {
135 | font: inherit;
136 | background: none;
137 | border: none;
138 | text-align: left;
139 | cursor: pointer;
140 | }
141 |
142 | input, textarea {
143 | display: block;
144 | width: 100%;
145 | background: none;
146 | font: inherit;
147 | }
148 |
149 | ::selection {
150 | background: var(--orange-yellow-crayola);
151 | color: var(--smoky-black);
152 | }
153 |
154 | :focus { outline-color: var(--orange-yellow-crayola); }
155 |
156 | html { font-family: var(--ff-poppins); }
157 |
158 | body { background: var(--smoky-black); }
159 |
160 |
161 |
162 |
163 |
164 | /*-----------------------------------*\
165 | #REUSED STYLE
166 | \*-----------------------------------*/
167 |
168 | .sidebar,
169 | article {
170 | background: var(--eerie-black-2);
171 | border: 1px solid var(--jet);
172 | border-radius: 20px;
173 | padding: 15px;
174 | box-shadow: var(--shadow-1);
175 | z-index: 1;
176 | }
177 |
178 | .separator {
179 | width: 100%;
180 | height: 1px;
181 | background: var(--jet);
182 | margin: 16px 0;
183 | }
184 |
185 | .icon-box {
186 | position: relative;
187 | background: var(--border-gradient-onyx);
188 | width: 30px;
189 | height: 30px;
190 | border-radius: 8px;
191 | display: flex;
192 | justify-content: center;
193 | align-items: center;
194 | font-size: 16px;
195 | color: var(--orange-yellow-crayola);
196 | box-shadow: var(--shadow-1);
197 | z-index: 1;
198 | }
199 |
200 | .icon-box::before {
201 | content: "";
202 | position: absolute;
203 | inset: 1px;
204 | background: var(--eerie-black-1);
205 | border-radius: inherit;
206 | z-index: -1;
207 | }
208 |
209 | .icon-box ion-icon { --ionicon-stroke-width: 35px; }
210 |
211 | article { display: none; }
212 |
213 | article.active {
214 | display: block;
215 | animation: fade 0.5s ease backwards;
216 | }
217 |
218 | @keyframes fade {
219 | 0% { opacity: 0; }
220 | 100% { opacity: 1; }
221 | }
222 |
223 | .h2,
224 | .h3,
225 | .h4,
226 | .h5 {
227 | color: var(--white-2);
228 | text-transform: capitalize;
229 | }
230 |
231 | .h2 { font-size: var(--fs-1); }
232 |
233 | .h3 { font-size: var(--fs-2); }
234 |
235 | .h4 { font-size: var(--fs-4); }
236 |
237 | .h5 {
238 | font-size: var(--fs-7);
239 | font-weight: var(--fw-500);
240 | }
241 |
242 | .article-title {
243 | position: relative;
244 | padding-bottom: 7px;
245 | }
246 |
247 | .article-title::after {
248 | content: "";
249 | position: absolute;
250 | bottom: 0;
251 | left: 0;
252 | width: 30px;
253 | height: 3px;
254 | background: var(--text-gradient-yellow);
255 | border-radius: 3px;
256 | }
257 |
258 | .has-scrollbar::-webkit-scrollbar {
259 | width: 5px; /* for vertical scrollbar */
260 | height: 5px; /* for horizontal scrollbar */
261 | }
262 |
263 | .has-scrollbar::-webkit-scrollbar-track {
264 | background: var(--onyx);
265 | border-radius: 5px;
266 | }
267 |
268 | .has-scrollbar::-webkit-scrollbar-thumb {
269 | background: var(--orange-yellow-crayola);
270 | border-radius: 5px;
271 | }
272 |
273 | .has-scrollbar::-webkit-scrollbar-button { width: 20px; }
274 |
275 | .content-card {
276 | position: relative;
277 | background: var(--border-gradient-onyx);
278 | padding: 15px;
279 | padding-top: 45px;
280 | border-radius: 14px;
281 | box-shadow: var(--shadow-2);
282 | cursor: pointer;
283 | z-index: 1;
284 | }
285 |
286 | .content-card::before {
287 | content: "";
288 | position: absolute;
289 | inset: 1px;
290 | background: var(--bg-gradient-jet);
291 | border-radius: inherit;
292 | z-index: -1;
293 | }
294 |
295 |
296 |
297 |
298 |
299 | /*-----------------------------------*\
300 | #MAIN
301 | \*-----------------------------------*/
302 |
303 | main {
304 | margin: 15px 12px;
305 | margin-bottom: 75px;
306 | min-width: 259px;
307 | }
308 |
309 |
310 |
311 |
312 |
313 | /*-----------------------------------*\
314 | #SIDEBAR
315 | \*-----------------------------------*/
316 |
317 | .sidebar {
318 | margin-bottom: 15px;
319 | max-height: 112px;
320 | overflow: hidden;
321 | transition: var(--transition-2);
322 | }
323 |
324 | .sidebar.active { max-height: 405px; }
325 |
326 | .sidebar-info {
327 | position: relative;
328 | display: flex;
329 | justify-content: flex-start;
330 | align-items: center;
331 | gap: 15px;
332 | }
333 |
334 | .avatar-box {
335 | background: var(--bg-gradient-onyx);
336 | border-radius: 20px;
337 | }
338 |
339 | .info-content .name {
340 | color: var(--white-2);
341 | font-size: var(--fs-3);
342 | font-weight: var(--fw-500);
343 | letter-spacing: -0.25px;
344 | margin-bottom: 10px;
345 | }
346 |
347 | .info-content .title {
348 | color: var(--white-1);
349 | background: var(--onyx);
350 | font-size: var(--fs-8);
351 | font-weight: var(--fw-300);
352 | width: max-content;
353 | padding: 3px 12px;
354 | border-radius: 8px;
355 | }
356 |
357 | .info_more-btn {
358 | position: absolute;
359 | top: -15px;
360 | right: -15px;
361 | border-radius: 0 15px;
362 | font-size: 13px;
363 | color: var(--orange-yellow-crayola);
364 | background: var(--border-gradient-onyx);
365 | padding: 10px;
366 | box-shadow: var(--shadow-2);
367 | transition: var(--transition-1);
368 | z-index: 1;
369 | }
370 |
371 | .info_more-btn::before {
372 | content: "";
373 | position: absolute;
374 | inset: 1px;
375 | border-radius: inherit;
376 | background: var(--bg-gradient-jet);
377 | transition: var(--transition-1);
378 | z-index: -1;
379 | }
380 |
381 | .info_more-btn:hover,
382 | .info_more-btn:focus { background: var(--bg-gradient-yellow-1); }
383 |
384 | .info_more-btn:hover::before,
385 | .info_more-btn:focus::before { background: var(--bg-gradient-yellow-2); }
386 |
387 | .info_more-btn span { display: none; }
388 |
389 | .sidebar-info_more {
390 | opacity: 0;
391 | visibility: hidden;
392 | transition: var(--transition-2);
393 | }
394 |
395 | .sidebar.active .sidebar-info_more {
396 | opacity: 1;
397 | visibility: visible;
398 | }
399 |
400 | .contacts-list {
401 | display: grid;
402 | grid-template-columns: 1fr;
403 | gap: 16px;
404 | }
405 |
406 | .contact-item {
407 | min-width: 100%;
408 | display: flex;
409 | align-items: center;
410 | gap: 16px;
411 | }
412 |
413 | .contact-info {
414 | max-width: calc(100% - 46px);
415 | width: calc(100% - 46px);
416 | }
417 |
418 | .contact-title {
419 | color: var(--light-gray-70);
420 | font-size: var(--fs-8);
421 | text-transform: uppercase;
422 | margin-bottom: 2px;
423 | }
424 |
425 | .contact-info :is(.contact-link, time, address) {
426 | color: var(--white-2);
427 | font-size: var(--fs-7);
428 | }
429 |
430 | .contact-info address { font-style: normal; }
431 |
432 | .social-list {
433 | display: flex;
434 | justify-content: flex-start;
435 | align-items: center;
436 | gap: 15px;
437 | padding-bottom: 4px;
438 | padding-left: 7px;
439 | }
440 |
441 | .social-item .social-link {
442 | color: var(--light-gray-70);
443 | font-size: 18px;
444 | }
445 |
446 |
447 | .social-item .social-link:hover { color: var(--light-gray); }
448 |
449 |
450 |
451 |
452 |
453 | /*-----------------------------------*\
454 | #NAVBAR
455 | \*-----------------------------------*/
456 |
457 | .navbar {
458 | position: fixed;
459 | bottom: 0;
460 | left: 0;
461 | width: 100%;
462 | background: hsla(240, 1%, 17%, 0.75);
463 | backdrop-filter: blur(10px);
464 | border: 1px solid var(--jet);
465 | border-radius: 12px 12px 0 0;
466 | box-shadow: var(--shadow-2);
467 | z-index: 5;
468 | }
469 |
470 | .navbar-list {
471 | display: flex;
472 | flex-wrap: wrap;
473 | justify-content: center;
474 | align-items: center;
475 | padding: 0 10px;
476 | }
477 |
478 | .navbar-link {
479 | color: var(--light-gray);
480 | font-size: var(--fs-8);
481 | padding: 20px 7px;
482 | transition: color var(--transition-1);
483 | }
484 |
485 | .navbar-link:hover,
486 | .navbar-link:focus { color: var(--light-gray-70); }
487 |
488 | .navbar-link.active { color: var(--orange-yellow-crayola); }
489 |
490 |
491 |
492 |
493 |
494 | /*-----------------------------------*\
495 | #ABOUT
496 | \*-----------------------------------*/
497 |
498 | .about .article-title { margin-bottom: 15px; }
499 |
500 | .about-text {
501 | color: var(--light-gray);
502 | font-size: var(--fs-6);
503 | font-weight: var(--fw-300);
504 | line-height: 1.6;
505 | }
506 |
507 | .about-text p { margin-bottom: 15px; }
508 |
509 |
510 |
511 | /**
512 | * #service
513 | */
514 |
515 | .service { margin-bottom: 35px; }
516 |
517 | .service-title { margin-bottom: 20px; }
518 |
519 | .service-list {
520 | display: grid;
521 | grid-template-columns: 1fr;
522 | gap: 20px;
523 | }
524 |
525 | .service-item {
526 | position: relative;
527 | background: var(--border-gradient-onyx);
528 | padding: 20px;
529 | border-radius: 14px;
530 | box-shadow: var(--shadow-2);
531 | z-index: 1;
532 | }
533 |
534 | .service-item::before {
535 | content: "";
536 | position: absolute;
537 | inset: 1px;
538 | background: var(--bg-gradient-jet);
539 | border-radius: inherit;
540 | z-index: -1;
541 | }
542 |
543 | .service-icon-box { margin-bottom: 10px; }
544 |
545 | .service-icon-box img { margin: auto; }
546 |
547 | .service-content-box { text-align: center; }
548 |
549 | .service-item-title { margin-bottom: 7px; }
550 |
551 | .service-item-text {
552 | color: var(--light-gray);
553 | font-size: var(--fs-6);
554 | font-weight: var(--fw-3);
555 | line-height: 1.6;
556 | }
557 |
558 |
559 | /**
560 | * #testimonials
561 | */
562 |
563 | .testimonials { margin-bottom: 30px; }
564 |
565 | .testimonials-title { margin-bottom: 20px; }
566 |
567 | .testimonials-list {
568 | display: flex;
569 | justify-content: flex-start;
570 | align-items: flex-start;
571 | gap: 15px;
572 | margin: 0 -15px;
573 | padding: 25px 15px;
574 | padding-bottom: 35px;
575 | overflow-x: auto;
576 | scroll-behavior: smooth;
577 | overscroll-behavior-inline: contain;
578 | scroll-snap-type: inline mandatory;
579 | }
580 |
581 | .testimonials-item {
582 | min-width: 100%;
583 | scroll-snap-align: center;
584 | }
585 |
586 | .testimonials-avatar-box {
587 | position: absolute;
588 | top: 0;
589 | left: 0;
590 | transform: translate(15px, -25px);
591 | background: var(--bg-gradient-onyx);
592 | border-radius: 14px;
593 | box-shadow: var(--shadow-1);
594 | }
595 |
596 | .testimonials-item-title { margin-bottom: 7px; }
597 |
598 | .testimonials-text {
599 | color: var(--light-gray);
600 | font-size: var(--fs-6);
601 | font-weight: var(--fw-300);
602 | line-height: 1.6;
603 | display: -webkit-box;
604 | line-clamp: 4;
605 | -webkit-line-clamp: 4;
606 | -webkit-box-orient: vertical;
607 | overflow: hidden;
608 | }
609 |
610 |
611 | /**
612 | * #testimonials-modal
613 | */
614 |
615 | .modal-container {
616 | position: fixed;
617 | top: 0;
618 | left: 0;
619 | width: 100%;
620 | height: 100%;
621 | display: flex;
622 | justify-content: center;
623 | align-items: center;
624 | overflow-y: auto;
625 | overscroll-behavior: contain;
626 | z-index: 20;
627 | pointer-events: none;
628 | visibility: hidden;
629 | }
630 |
631 | .modal-container::-webkit-scrollbar { display: none; }
632 |
633 | .modal-container.active {
634 | pointer-events: all;
635 | visibility: visible;
636 | }
637 |
638 | .overlay {
639 | position: fixed;
640 | top: 0;
641 | left: 0;
642 | width: 100%;
643 | height: 100vh;
644 | background: hsl(0, 0%, 5%);
645 | opacity: 0;
646 | visibility: hidden;
647 | pointer-events: none;
648 | z-index: 1;
649 | transition: var(--transition-1);
650 | }
651 |
652 | .overlay.active {
653 | opacity: 0.8;
654 | visibility: visible;
655 | pointer-events: all;
656 | }
657 |
658 | .testimonials-modal {
659 | background: var(--eerie-black-2);
660 | position: relative;
661 | padding: 15px;
662 | margin: 15px 12px;
663 | border: 1px solid var(--jet);
664 | border-radius: 14px;
665 | box-shadow: var(--shadow-5);
666 | transform: scale(1.2);
667 | opacity: 0;
668 | transition: var(--transition-1);
669 | z-index: 2;
670 | }
671 |
672 | .modal-container.active .testimonials-modal {
673 | transform: scale(1);
674 | opacity: 1;
675 | }
676 |
677 | .modal-close-btn {
678 | position: absolute;
679 | top: 15px;
680 | right: 15px;
681 | background: var(--onyx);
682 | border-radius: 8px;
683 | width: 32px;
684 | height: 32px;
685 | display: flex;
686 | justify-content: center;
687 | align-items: center;
688 | color: var(--white-2);
689 | font-size: 18px;
690 | opacity: 0.7;
691 | }
692 |
693 | .modal-close-btn:hover,
694 | .modal-close-btn:focus { opacity: 1; }
695 |
696 | .modal-close-btn ion-icon { --ionicon-stroke-width: 50px; }
697 |
698 | .modal-avatar-box {
699 | background: var(--bg-gradient-onyx);
700 | width: max-content;
701 | border-radius: 14px;
702 | margin-bottom: 15px;
703 | box-shadow: var(--shadow-2);
704 | }
705 |
706 | .modal-img-wrapper > img { display: none; }
707 |
708 | .modal-title { margin-bottom: 4px; }
709 |
710 | .modal-content time {
711 | font-size: var(--fs-6);
712 | color: var(--light-gray-70);
713 | font-weight: var(--fw-300);
714 | margin-bottom: 10px;
715 | }
716 |
717 | .modal-content p {
718 | color: var(--light-gray);
719 | font-size: var(--fs-6);
720 | font-weight: var(--fw-300);
721 | line-height: 1.6;
722 | }
723 |
724 |
725 | /**
726 | * #clients
727 | */
728 |
729 | .clients { margin-bottom: 15px; }
730 |
731 | .clients-list {
732 | display: flex;
733 | justify-content: flex-start;
734 | align-items: flex-start;
735 | gap: 15px;
736 | margin: 0 -15px;
737 | padding: 25px;
738 | padding-bottom: 25px;
739 | overflow-x: auto;
740 | scroll-behavior: smooth;
741 | overscroll-behavior-inline: contain;
742 | scroll-snap-type: inline mandatory;
743 | scroll-padding-inline: 25px;
744 | }
745 |
746 | .clients-item {
747 | min-width: 50%;
748 | scroll-snap-align: start;
749 | }
750 |
751 | .clients-item img {
752 | width: 100%;
753 | filter: grayscale(1);
754 | transition: var(--transition-1);
755 | }
756 |
757 | .clients-item img:hover { filter: grayscale(0); }
758 |
759 |
760 |
761 |
762 |
763 | /*-----------------------------------*\
764 | #RESUME
765 | \*-----------------------------------*/
766 |
767 | .article-title { margin-bottom: 30px; }
768 |
769 |
770 | /**
771 | * education and experience
772 | */
773 |
774 | .timeline { margin-bottom: 30px; }
775 |
776 | .timeline .title-wrapper {
777 | display: flex;
778 | align-items: center;
779 | gap: 15px;
780 | margin-bottom: 25px;
781 | }
782 |
783 | .timeline-list {
784 | font-size: var(--fs-6);
785 | margin-left: 45px;
786 | }
787 |
788 | .timeline-item { position: relative; }
789 |
790 | .timeline-item:not(:last-child) { margin-bottom: 20px; }
791 |
792 | .timeline-item-title {
793 | font-size: var(--fs-6);
794 | line-height: 1.3;
795 | margin-bottom: 7px;
796 | }
797 |
798 | .timeline-list span {
799 | color: var(--vegas-gold);
800 | font-weight: var(--fw-400);
801 | line-height: 1.6;
802 | }
803 |
804 | .timeline-item:not(:last-child)::before {
805 | content: "";
806 | position: absolute;
807 | top: -25px;
808 | left: -30px;
809 | width: 1px;
810 | height: calc(100% + 50px);
811 | background: var(--jet);
812 | }
813 |
814 | .timeline-item::after {
815 | content: "";
816 | position: absolute;
817 | top: 5px;
818 | left: -33px;
819 | height: 6px;
820 | width: 6px;
821 | background: var(--text-gradient-yellow);
822 | border-radius: 50%;
823 | box-shadow: 0 0 0 4px var(--jet);
824 | }
825 |
826 | .timeline-text {
827 | color: var(--light-gray);
828 | font-weight: var(--fw-300);
829 | line-height: 1.6;
830 | }
831 |
832 |
833 | /**
834 | * skills
835 | */
836 |
837 | .skills-title { margin-bottom: 20px; }
838 |
839 | .skills-list { padding: 20px; }
840 |
841 |
842 | .skills-item:not(:last-child) { margin-bottom: 15px; }
843 |
844 | .skill .title-wrapper {
845 | display: flex;
846 | align-items: center;
847 | gap: 5px;
848 | margin-bottom: 8px;
849 | }
850 |
851 | .skill .title-wrapper data {
852 | color: var(--light-gray);
853 | font-size: var(--fs-7);
854 | font-weight: var(--fw-300);
855 | }
856 |
857 | .skill-progress-bg {
858 | background: var(--jet);
859 | width: 100%;
860 | height: 8px;
861 | border-radius: 10px;
862 | }
863 |
864 | .skill-progress-fill {
865 | background: var(--text-gradient-yellow);
866 | height: 100%;
867 | border-radius: inherit;
868 | }
869 |
870 |
871 |
872 |
873 |
874 | /*-----------------------------------*\
875 | #PORTFOLIO
876 | \*-----------------------------------*/
877 |
878 | .filter-list { display: none; }
879 |
880 | .filter-select-box {
881 | position: relative;
882 | margin-bottom: 25px;
883 | }
884 |
885 | .filter-select {
886 | background: var(--eerie-black-2);
887 | color: var(--light-gray);
888 | display: flex;
889 | justify-content: space-between;
890 | align-items: center;
891 | width: 100%;
892 | padding: 12px 16px;
893 | border: 1px solid var(--jet);
894 | border-radius: 14px;
895 | font-size: var(--fs-6);
896 | font-weight: var(--fw-300);
897 | }
898 |
899 | .filter-select.active .select-icon { transform: rotate(0.5turn); }
900 |
901 | .select-list {
902 | background: var(--eerie-black-2);
903 | position: absolute;
904 | top: calc(100% + 6px);
905 | width: 100%;
906 | padding: 6px;
907 | border: 1px solid var(--jet);
908 | border-radius: 14px;
909 | z-index: 2;
910 | opacity: 0;
911 | visibility: hidden;
912 | pointer-events: none;
913 | transition: 0.15s ease-in-out;
914 | }
915 |
916 | .filter-select.active + .select-list {
917 | opacity: 1;
918 | visibility: visible;
919 | pointer-events: all;
920 | }
921 |
922 | .select-item button {
923 | background: var(--eerie-black-2);
924 | color: var(--light-gray);
925 | font-size: var(--fs-6);
926 | font-weight: var(--fw-300);
927 | text-transform: capitalize;
928 | width: 100%;
929 | padding: 8px 10px;
930 | border-radius: 8px;
931 | }
932 |
933 | .select-item button:hover { --eerie-black-2: hsl(240, 2%, 20%); }
934 |
935 | .project-list {
936 | display: grid;
937 | grid-template-columns: 1fr;
938 | gap: 30px;
939 | margin-bottom: 10px;
940 | }
941 |
942 | .project-item { display: none; }
943 |
944 | .project-item.active {
945 | display: block;
946 | animation: scaleUp 0.25s ease forwards;
947 | }
948 |
949 | @keyframes scaleUp {
950 | 0% { transform: scale(0.5); }
951 | 100% { transform: scale(1); }
952 | }
953 |
954 | .project-item > a { width: 100%; }
955 |
956 | .project-img {
957 | position: relative;
958 | width: 100%;
959 | height: 200px;
960 | border-radius: 16px;
961 | overflow: hidden;
962 | margin-bottom: 15px;
963 | }
964 |
965 | .project-img::before {
966 | content: "";
967 | position: absolute;
968 | top: 0;
969 | left: 0;
970 | width: 100%;
971 | height: 100%;
972 | background: transparent;
973 | z-index: 1;
974 | transition: var(--transition-1);
975 | }
976 |
977 | .project-item > a:hover .project-img::before { background: hsla(0, 0%, 0%, 0.5); }
978 |
979 | .project-item-icon-box {
980 | --scale: 0.8;
981 |
982 | background: var(--jet);
983 | color: var(--orange-yellow-crayola);
984 | position: absolute;
985 | top: 50%;
986 | left: 50%;
987 | transform: translate(-50%, -50%) scale(var(--scale));
988 | font-size: 20px;
989 | padding: 18px;
990 | border-radius: 12px;
991 | opacity: 0;
992 | z-index: 1;
993 | transition: var(--transition-1);
994 | }
995 |
996 | .project-item > a:hover .project-item-icon-box {
997 | --scale: 1;
998 | opacity: 1;
999 | }
1000 |
1001 | .project-item-icon-box ion-icon { --ionicon-stroke-width: 50px; }
1002 |
1003 | .project-img img {
1004 | width: 100%;
1005 | height: 100%;
1006 | object-fit: cover;
1007 | transition: var(--transition-1);
1008 | }
1009 |
1010 | .project-item > a:hover img { transform: scale(1.1); }
1011 |
1012 | .project-title,
1013 | .project-category { margin-left: 10px; }
1014 |
1015 | .project-title {
1016 | color: var(--white-2);
1017 | font-size: var(--fs-5);
1018 | font-weight: var(--fw-400);
1019 | text-transform: capitalize;
1020 | line-height: 1.3;
1021 | }
1022 |
1023 | .project-category {
1024 | color: var(--light-gray-70);
1025 | font-size: var(--fs-6);
1026 | font-weight: var(--fw-300);
1027 | }
1028 |
1029 |
1030 |
1031 |
1032 |
1033 | /*-----------------------------------*\
1034 | #BLOG
1035 | \*-----------------------------------*/
1036 |
1037 | .blog-posts { margin-bottom: 10px; }
1038 |
1039 | .blog-posts-list {
1040 | display: grid;
1041 | grid-template-columns: 1fr;
1042 | gap: 20px;
1043 | }
1044 |
1045 | .blog-post-item > a {
1046 | position: relative;
1047 | background: var(--border-gradient-onyx);
1048 | height: 100%;
1049 | box-shadow: var(--shadow-4);
1050 | border-radius: 16px;
1051 | z-index: 1;
1052 | }
1053 |
1054 | .blog-post-item > a::before {
1055 | content: "";
1056 | position: absolute;
1057 | inset: 1px;
1058 | border-radius: inherit;
1059 | background: var(--eerie-black-1);
1060 | z-index: -1;
1061 | }
1062 |
1063 | .blog-banner-box {
1064 | width: 100%;
1065 | height: 200px;
1066 | border-radius: 12px;
1067 | overflow: hidden;
1068 | }
1069 |
1070 | .blog-banner-box img {
1071 | width: 100%;
1072 | height: 100%;
1073 | object-fit: cover;
1074 | transition: var(--transition-1);
1075 | }
1076 |
1077 | .blog-post-item > a:hover .blog-banner-box img { transform: scale(1.1); }
1078 |
1079 | .blog-content { padding: 15px; }
1080 |
1081 | .blog-meta {
1082 | display: flex;
1083 | justify-content: flex-start;
1084 | align-items: center;
1085 | gap: 7px;
1086 | margin-bottom: 10px;
1087 | }
1088 |
1089 | .blog-meta :is(.blog-category, time) {
1090 | color: var(--light-gray-70);
1091 | font-size: var(--fs-6);
1092 | font-weight: var(--fw-300);
1093 | }
1094 |
1095 | .blog-meta .dot {
1096 | background: var(--light-gray-70);
1097 | width: 4px;
1098 | height: 4px;
1099 | border-radius: 4px;
1100 | }
1101 |
1102 | .blog-item-title {
1103 | margin-bottom: 10px;
1104 | line-height: 1.3;
1105 | transition: var(--transition-1);
1106 | }
1107 |
1108 | .blog-post-item > a:hover .blog-item-title { color: var(--orange-yellow-crayola); }
1109 |
1110 | .blog-text {
1111 | color: var(--light-gray);
1112 | font-size: var(--fs-6);
1113 | font-weight: var(--fw-300);
1114 | line-height: 1.6;
1115 | }
1116 |
1117 |
1118 |
1119 |
1120 |
1121 | /*-----------------------------------*\
1122 | #CONTACT
1123 | \*-----------------------------------*/
1124 |
1125 | .mapbox {
1126 | position: relative;
1127 | height: 250px;
1128 | width: 100%;
1129 | border-radius: 16px;
1130 | margin-bottom: 30px;
1131 | border: 1px solid var(--jet);
1132 | overflow: hidden;
1133 | }
1134 |
1135 | .mapbox figure { height: 100%; }
1136 |
1137 | .mapbox iframe {
1138 | width: 100%;
1139 | height: 100%;
1140 | border: none;
1141 | filter: grayscale(1) invert(1);
1142 | }
1143 |
1144 | .contact-form { margin-bottom: 10px; }
1145 |
1146 | .form-title { margin-bottom: 20px; }
1147 |
1148 | .input-wrapper {
1149 | display: grid;
1150 | grid-template-columns: 1fr;
1151 | gap: 25px;
1152 | margin-bottom: 25px;
1153 | }
1154 |
1155 | .form-input {
1156 | color: var(--white-2);
1157 | font-size: var(--fs-6);
1158 | font-weight: var(--fw-400);
1159 | padding: 13px 20px;
1160 | border: 1px solid var(--jet);
1161 | border-radius: 14px;
1162 | outline: none;
1163 | }
1164 |
1165 | .form-input::placeholder { font-weight: var(--fw-500); }
1166 |
1167 | .form-input:focus { border-color: var(--orange-yellow-crayola); }
1168 |
1169 | textarea.form-input {
1170 | min-height: 100px;
1171 | height: 120px;
1172 | max-height: 200px;
1173 | resize: vertical;
1174 | margin-bottom: 25px;
1175 | }
1176 |
1177 | textarea.form-input::-webkit-resizer { display: none; }
1178 |
1179 | .form-input:focus:invalid { border-color: var(--bittersweet-shimmer); }
1180 |
1181 | .form-btn {
1182 | position: relative;
1183 | width: 100%;
1184 | background: var(--border-gradient-onyx);
1185 | color: var(--orange-yellow-crayola);
1186 | display: flex;
1187 | justify-content: center;
1188 | align-items: center;
1189 | gap: 10px;
1190 | padding: 13px 20px;
1191 | border-radius: 14px;
1192 | font-size: var(--fs-6);
1193 | text-transform: capitalize;
1194 | box-shadow: var(--shadow-3);
1195 | z-index: 1;
1196 | transition: var(--transition-1);
1197 | }
1198 |
1199 | .form-btn::before {
1200 | content: "";
1201 | position: absolute;
1202 | inset: 1px;
1203 | background: var(--bg-gradient-jet);
1204 | border-radius: inherit;
1205 | z-index: -1;
1206 | transition: var(--transition-1);
1207 | }
1208 |
1209 | .form-btn ion-icon { font-size: 16px; }
1210 |
1211 | .form-btn:hover { background: var(--bg-gradient-yellow-1); }
1212 |
1213 | .form-btn:hover::before { background: var(--bg-gradient-yellow-2); }
1214 |
1215 | .form-btn:disabled {
1216 | opacity: 0.7;
1217 | cursor: not-allowed;
1218 | }
1219 |
1220 | .form-btn:disabled:hover { background: var(--border-gradient-onyx); }
1221 |
1222 | .form-btn:disabled:hover::before { background: var(--bg-gradient-jet); }
1223 |
1224 |
1225 |
1226 |
1227 |
1228 | /*-----------------------------------*\
1229 | #RESPONSIVE
1230 | \*-----------------------------------*/
1231 |
1232 | /**
1233 | * responsive larger than 450px screen
1234 | */
1235 |
1236 | @media (min-width: 450px) {
1237 |
1238 | /**
1239 | * client
1240 | */
1241 |
1242 | .clients-item { min-width: calc(33.33% - 10px); }
1243 |
1244 |
1245 |
1246 | /**
1247 | * #PORTFOLIO, BLOG
1248 | */
1249 |
1250 | .project-img,
1251 | .blog-banner-box { height: auto; }
1252 |
1253 | }
1254 |
1255 |
1256 |
1257 |
1258 |
1259 | /**
1260 | * responsive larger than 580px screen
1261 | */
1262 |
1263 | @media (min-width: 580px) {
1264 |
1265 | /**
1266 | * CUSTOM PROPERTY
1267 | */
1268 |
1269 | :root {
1270 |
1271 | /**
1272 | * typography
1273 | */
1274 |
1275 | --fs-1: 32px;
1276 | --fs-2: 24px;
1277 | --fs-3: 26px;
1278 | --fs-4: 18px;
1279 | --fs-6: 15px;
1280 | --fs-7: 15px;
1281 | --fs-8: 12px;
1282 |
1283 | }
1284 |
1285 |
1286 |
1287 | /**
1288 | * #REUSED STYLE
1289 | */
1290 |
1291 | .sidebar, article {
1292 | width: 520px;
1293 | margin-inline: auto;
1294 | padding: 30px;
1295 | }
1296 |
1297 | .article-title {
1298 | font-weight: var(--fw-600);
1299 | padding-bottom: 15px;
1300 | }
1301 |
1302 | .article-title::after {
1303 | width: 40px;
1304 | height: 5px;
1305 | }
1306 |
1307 | .icon-box {
1308 | width: 48px;
1309 | height: 48px;
1310 | border-radius: 12px;
1311 | font-size: 18px;
1312 | }
1313 |
1314 |
1315 |
1316 | /**
1317 | * #MAIN
1318 | */
1319 |
1320 | main {
1321 | margin-top: 60px;
1322 | margin-bottom: 100px;
1323 | }
1324 |
1325 |
1326 |
1327 | /**
1328 | * #SIDEBAR
1329 | */
1330 |
1331 | .sidebar {
1332 | max-height: 180px;
1333 | margin-bottom: 30px;
1334 | }
1335 |
1336 | .sidebar.active { max-height: 584px; }
1337 |
1338 | .sidebar-info { gap: 25px; }
1339 |
1340 | .avatar-box { border-radius: 30px; }
1341 |
1342 | .avatar-box img { width: 120px; }
1343 |
1344 | .info-content .name { margin-bottom: 15px; }
1345 |
1346 | .info-content .title { padding: 5px 18px; }
1347 |
1348 | .info_more-btn {
1349 | top: -30px;
1350 | right: -30px;
1351 | padding: 10px 15px;
1352 | }
1353 |
1354 | .info_more-btn span {
1355 | display: block;
1356 | font-size: var(--fs-8);
1357 | }
1358 |
1359 | .info_more-btn ion-icon { display: none; }
1360 |
1361 | .separator { margin: 32px 0; }
1362 |
1363 | .contacts-list { gap: 20px; }
1364 |
1365 | .contact-info {
1366 | max-width: calc(100% - 64px);
1367 | width: calc(100% - 64px);
1368 | }
1369 |
1370 |
1371 |
1372 | /**
1373 | * #NAVBAR
1374 | */
1375 |
1376 | .navbar { border-radius: 20px 20px 0 0; }
1377 |
1378 | .navbar-list { gap: 20px; }
1379 |
1380 | .navbar-link { --fs-8: 14px; }
1381 |
1382 |
1383 |
1384 | /**
1385 | * #ABOUT
1386 | */
1387 |
1388 | .about .article-title { margin-bottom: 20px; }
1389 |
1390 | .about-text { margin-bottom: 40px; }
1391 |
1392 | /* service */
1393 |
1394 | .service-item {
1395 | display: flex;
1396 | justify-content: flex-start;
1397 | align-items: flex-start;
1398 | gap: 18px;
1399 | padding: 30px;
1400 | }
1401 |
1402 | .service-icon-box {
1403 | margin-bottom: 0;
1404 | margin-top: 5px;
1405 | }
1406 |
1407 | .service-content-box { text-align: left; }
1408 |
1409 | /* testimonials */
1410 |
1411 | .testimonials-title { margin-bottom: 25px; }
1412 |
1413 | .testimonials-list {
1414 | gap: 30px;
1415 | margin: 0 -30px;
1416 | padding: 30px;
1417 | padding-bottom: 35px;
1418 | }
1419 |
1420 | .content-card {
1421 | padding: 30px;
1422 | padding-top: 25px;
1423 | }
1424 |
1425 | .testimonials-avatar-box {
1426 | transform: translate(30px, -30px);
1427 | border-radius: 20px;
1428 | }
1429 |
1430 | .testimonials-avatar-box img { width: 80px; }
1431 |
1432 | .testimonials-item-title {
1433 | margin-bottom: 10px;
1434 | margin-left: 95px;
1435 | }
1436 |
1437 | .testimonials-text {
1438 | line-clamp: 2;
1439 | -webkit-line-clamp: 2;
1440 | }
1441 |
1442 | /* testimonials modal */
1443 |
1444 | .modal-container { padding: 20px; }
1445 |
1446 | .testimonials-modal {
1447 | display: flex;
1448 | justify-content: flex-start;
1449 | align-items: stretch;
1450 | gap: 25px;
1451 | padding: 30px;
1452 | border-radius: 20px;
1453 | }
1454 |
1455 | .modal-img-wrapper {
1456 | display: flex;
1457 | flex-direction: column;
1458 | align-items: center;
1459 | }
1460 |
1461 | .modal-avatar-box {
1462 | border-radius: 18px;
1463 | margin-bottom: 0;
1464 | }
1465 |
1466 | .modal-avatar-box img { width: 65px; }
1467 |
1468 | .modal-img-wrapper > img {
1469 | display: block;
1470 | flex-grow: 1;
1471 | width: 35px;
1472 | }
1473 |
1474 | /* clients */
1475 |
1476 | .clients-list {
1477 | gap: 50px;
1478 | margin: 0 -30px;
1479 | padding: 45px;
1480 | scroll-padding-inline: 45px;
1481 | }
1482 |
1483 | .clients-item { min-width: calc(33.33% - 35px); }
1484 |
1485 |
1486 |
1487 | /**
1488 | * #RESUME
1489 | */
1490 |
1491 | .timeline-list { margin-left: 65px; }
1492 |
1493 | .timeline-item:not(:last-child)::before { left: -40px; }
1494 |
1495 | .timeline-item::after {
1496 | height: 8px;
1497 | width: 8px;
1498 | left: -43px;
1499 | }
1500 |
1501 | .skills-item:not(:last-child) { margin-bottom: 25px; }
1502 |
1503 |
1504 |
1505 | /**
1506 | * #PORTFOLIO, BLOG
1507 | */
1508 |
1509 | .project-img, .blog-banner-box { border-radius: 16px; }
1510 |
1511 | .blog-posts-list { gap: 30px; }
1512 |
1513 | .blog-content { padding: 25px; }
1514 |
1515 |
1516 |
1517 | /**
1518 | * #CONTACT
1519 | */
1520 |
1521 | .mapbox {
1522 | height: 380px;
1523 | border-radius: 18px;
1524 | }
1525 |
1526 | .input-wrapper {
1527 | gap: 30px;
1528 | margin-bottom: 30px;
1529 | }
1530 |
1531 | .form-input { padding: 15px 20px; }
1532 |
1533 | textarea.form-input { margin-bottom: 30px; }
1534 |
1535 | .form-btn {
1536 | --fs-6: 16px;
1537 | padding: 16px 20px;
1538 | }
1539 |
1540 | .form-btn ion-icon { font-size: 18px; }
1541 |
1542 | }
1543 |
1544 |
1545 |
1546 |
1547 |
1548 | /**
1549 | * responsive larger than 768px screen
1550 | */
1551 |
1552 | @media (min-width: 768px) {
1553 |
1554 | /**
1555 | * REUSED STYLE
1556 | */
1557 |
1558 | .sidebar, article { width: 700px; }
1559 |
1560 | .has-scrollbar::-webkit-scrollbar-button { width: 100px; }
1561 |
1562 |
1563 |
1564 | /**
1565 | * SIDEBAR
1566 | */
1567 |
1568 | .contacts-list {
1569 | grid-template-columns: 1fr 1fr;
1570 | gap: 30px 15px;
1571 | }
1572 |
1573 |
1574 |
1575 | /**
1576 | * NAVBAR
1577 | */
1578 |
1579 | .navbar-link { --fs-8: 15px; }
1580 |
1581 |
1582 |
1583 | /**
1584 | * ABOUT
1585 | */
1586 |
1587 | /* testimonials modal */
1588 |
1589 | .testimonials-modal {
1590 | gap: 35px;
1591 | max-width: 680px;
1592 | }
1593 |
1594 | .modal-avatar-box img { width: 80px; }
1595 |
1596 |
1597 |
1598 | /**
1599 | * PORTFOLIO
1600 | */
1601 |
1602 | .article-title { padding-bottom: 20px; }
1603 |
1604 | .filter-select-box { display: none; }
1605 |
1606 | .filter-list {
1607 | display: flex;
1608 | justify-content: flex-start;
1609 | align-items: center;
1610 | gap: 25px;
1611 | padding-left: 5px;
1612 | margin-bottom: 30px;
1613 | }
1614 |
1615 | .filter-item button {
1616 | color: var(--light-gray);
1617 | font-size: var(--fs-5);
1618 | transition: var(--transition-1);
1619 | }
1620 |
1621 | .filter-item button:hover { color: var(--light-gray-70); }
1622 |
1623 | .filter-item button.active { color: var(--orange-yellow-crayola); }
1624 |
1625 | /* portfolio and blog grid */
1626 |
1627 | .project-list, .blog-posts-list { grid-template-columns: 1fr 1fr; }
1628 |
1629 |
1630 |
1631 | /**
1632 | * CONTACT
1633 | */
1634 |
1635 | .input-wrapper { grid-template-columns: 1fr 1fr; }
1636 |
1637 | .form-btn {
1638 | width: max-content;
1639 | margin-left: auto;
1640 | }
1641 |
1642 | }
1643 |
1644 |
1645 |
1646 |
1647 |
1648 | /**
1649 | * responsive larger than 1024px screen
1650 | */
1651 |
1652 | @media (min-width: 1024px) {
1653 |
1654 | /**
1655 | * CUSTOM PROPERTY
1656 | */
1657 |
1658 | :root {
1659 |
1660 | /**
1661 | * shadow
1662 | */
1663 |
1664 | --shadow-1: -4px 8px 24px hsla(0, 0%, 0%, 0.125);
1665 | --shadow-2: 0 16px 30px hsla(0, 0%, 0%, 0.125);
1666 | --shadow-3: 0 16px 40px hsla(0, 0%, 0%, 0.125);
1667 |
1668 | }
1669 |
1670 |
1671 |
1672 | /**
1673 | * REUSED STYLE
1674 | */
1675 |
1676 | .sidebar, article {
1677 | width: 950px;
1678 | box-shadow: var(--shadow-5);
1679 | }
1680 |
1681 |
1682 |
1683 | /**
1684 | * MAIN
1685 | */
1686 |
1687 | main { margin-bottom: 60px; }
1688 |
1689 | .main-content {
1690 | position: relative;
1691 | width: max-content;
1692 | margin: auto;
1693 | }
1694 |
1695 |
1696 |
1697 | /**
1698 | * NAVBAR
1699 | */
1700 |
1701 | .navbar {
1702 | position: absolute;
1703 | bottom: auto;
1704 | top: 0;
1705 | left: auto;
1706 | right: 0;
1707 | width: max-content;
1708 | border-radius: 0 20px;
1709 | padding: 0 20px;
1710 | box-shadow: none;
1711 | }
1712 |
1713 | .navbar-list {
1714 | gap: 30px;
1715 | padding: 0 20px;
1716 | }
1717 |
1718 | .navbar-link { font-weight: var(--fw-500); }
1719 |
1720 |
1721 |
1722 | /**
1723 | * ABOUT
1724 | */
1725 |
1726 | /* service */
1727 |
1728 | .service-list {
1729 | grid-template-columns: 1fr 1fr;
1730 | gap: 20px 25px;
1731 | }
1732 |
1733 | /* testimonials */
1734 |
1735 | .testimonials-item { min-width: calc(50% - 15px); }
1736 |
1737 | /* clients */
1738 |
1739 | .clients-item { min-width: calc(25% - 38px); }
1740 |
1741 |
1742 |
1743 | /**
1744 | * PORTFOLIO
1745 | */
1746 |
1747 | .project-list { grid-template-columns: repeat(3, 1fr); }
1748 |
1749 |
1750 |
1751 | /**
1752 | * BLOG
1753 | */
1754 |
1755 | .blog-banner-box { height: 230px; }
1756 |
1757 | }
1758 |
1759 |
1760 |
1761 |
1762 |
1763 | /**
1764 | * responsive larger than 1250px screen
1765 | */
1766 |
1767 | @media (min-width: 1250px) {
1768 |
1769 | /**
1770 | * RESET
1771 | */
1772 |
1773 | body::-webkit-scrollbar { width: 20px; }
1774 |
1775 | body::-webkit-scrollbar-track { background: var(--smoky-black); }
1776 |
1777 | body::-webkit-scrollbar-thumb {
1778 | border: 5px solid var(--smoky-black);
1779 | background: hsla(0, 0%, 100%, 0.1);
1780 | border-radius: 20px;
1781 | box-shadow: inset 1px 1px 0 hsla(0, 0%, 100%, 0.11),
1782 | inset -1px -1px 0 hsla(0, 0%, 100%, 0.11);
1783 | }
1784 |
1785 | body::-webkit-scrollbar-thumb:hover { background: hsla(0, 0%, 100%, 0.15); }
1786 |
1787 | body::-webkit-scrollbar-button { height: 60px; }
1788 |
1789 |
1790 |
1791 | /**
1792 | * REUSED STYLE
1793 | */
1794 |
1795 | .sidebar, article { width: auto; }
1796 |
1797 | article { min-height: 100%; }
1798 |
1799 |
1800 |
1801 | /**
1802 | * MAIN
1803 | */
1804 |
1805 | main {
1806 | max-width: 1200px;
1807 | margin-inline: auto;
1808 | display: flex;
1809 | justify-content: center;
1810 | align-items: stretch;
1811 | gap: 25px;
1812 | }
1813 |
1814 | .main-content {
1815 | min-width: 75%;
1816 | width: 75%;
1817 | margin: 0;
1818 | }
1819 |
1820 |
1821 |
1822 | /**
1823 | * SIDEBAR
1824 | */
1825 |
1826 | .sidebar {
1827 | position: sticky;
1828 | top: 60px;
1829 | max-height: max-content;
1830 | height: 100%;
1831 | margin-bottom: 0;
1832 | padding-top: 60px;
1833 | z-index: 1;
1834 | }
1835 |
1836 | .sidebar-info { flex-direction: column; }
1837 |
1838 | .avatar-box img { width: 150px; }
1839 |
1840 | .info-content .name {
1841 | white-space: nowrap;
1842 | text-align: center;
1843 | }
1844 |
1845 | .info-content .title { margin: auto; }
1846 |
1847 | .info_more-btn { display: none; }
1848 |
1849 | .sidebar-info_more {
1850 | opacity: 1;
1851 | visibility: visible;
1852 | }
1853 |
1854 | .contacts-list { grid-template-columns: 1fr; }
1855 |
1856 | .contact-info :is(.contact-link) {
1857 | white-space: nowrap;
1858 | overflow: hidden;
1859 | text-overflow: ellipsis;
1860 | }
1861 |
1862 | .contact-info :is(.contact-link, time, address) {
1863 | --fs-7: 14px;
1864 | font-weight: var(--fw-300);
1865 | }
1866 |
1867 | .separator:last-of-type {
1868 | margin: 15px 0;
1869 | opacity: 0;
1870 | }
1871 |
1872 | .social-list { justify-content: center; }
1873 |
1874 |
1875 |
1876 | /**
1877 | * RESUME
1878 | */
1879 |
1880 | .timeline-text { max-width: 700px; }
1881 |
1882 | }
--------------------------------------------------------------------------------
/vcard/assets/images/Testimonials1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/vcard/assets/images/Testimonials1.png
--------------------------------------------------------------------------------
/vcard/assets/images/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/vcard/assets/images/favicon.ico
--------------------------------------------------------------------------------
/vcard/assets/images/icon-app.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/vcard/assets/images/icon-design.svg:
--------------------------------------------------------------------------------
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 |
28 |
--------------------------------------------------------------------------------
/vcard/assets/images/icon-dev.svg:
--------------------------------------------------------------------------------
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 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/vcard/assets/images/icon-photo.svg:
--------------------------------------------------------------------------------
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 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/vcard/assets/images/icon-quote.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/vcard/assets/images/logo.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/vcard/assets/images/logo.ico
--------------------------------------------------------------------------------
/vcard/assets/images/logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/vcard/assets/images/pp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/vcard/assets/images/pp.png
--------------------------------------------------------------------------------
/vcard/assets/images/testimonials satish.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OracleBrain/MyWorld/5bdbef41292944064143a696a4a3c4155fccb88c/vcard/assets/images/testimonials satish.jpg
--------------------------------------------------------------------------------
/vcard/assets/js/script.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 |
4 |
5 | // element toggle function
6 | const elementToggleFunc = function (elem) { elem.classList.toggle("active"); }
7 |
8 |
9 |
10 | // sidebar variables
11 | const sidebar = document.querySelector("[data-sidebar]");
12 | const sidebarBtn = document.querySelector("[data-sidebar-btn]");
13 |
14 | // sidebar toggle functionality for mobile
15 | sidebarBtn.addEventListener("click", function () { elementToggleFunc(sidebar); });
16 |
17 |
18 |
19 | // testimonials variables
20 | const testimonialsItem = document.querySelectorAll("[data-testimonials-item]");
21 | const modalContainer = document.querySelector("[data-modal-container]");
22 | const modalCloseBtn = document.querySelector("[data-modal-close-btn]");
23 | const overlay = document.querySelector("[data-overlay]");
24 |
25 | // modal variable
26 | const modalImg = document.querySelector("[data-modal-img]");
27 | const modalTitle = document.querySelector("[data-modal-title]");
28 | const modalText = document.querySelector("[data-modal-text]");
29 |
30 | // modal toggle function
31 | const testimonialsModalFunc = function () {
32 | modalContainer.classList.toggle("active");
33 | overlay.classList.toggle("active");
34 | }
35 |
36 | // add click event to all modal items
37 | for (let i = 0; i < testimonialsItem.length; i++) {
38 |
39 | testimonialsItem[i].addEventListener("click", function () {
40 |
41 | modalImg.src = this.querySelector("[data-testimonials-avatar]").src;
42 | modalImg.alt = this.querySelector("[data-testimonials-avatar]").alt;
43 | modalTitle.innerHTML = this.querySelector("[data-testimonials-title]").innerHTML;
44 | modalText.innerHTML = this.querySelector("[data-testimonials-text]").innerHTML;
45 |
46 | testimonialsModalFunc();
47 |
48 | });
49 |
50 | }
51 |
52 | // add click event to modal close button
53 | modalCloseBtn.addEventListener("click", testimonialsModalFunc);
54 | overlay.addEventListener("click", testimonialsModalFunc);
55 |
56 |
57 |
58 | // custom select variables
59 | const select = document.querySelector("[data-select]");
60 | const selectItems = document.querySelectorAll("[data-select-item]");
61 | const selectValue = document.querySelector("[data-selecct-value]");
62 | const filterBtn = document.querySelectorAll("[data-filter-btn]");
63 |
64 | select.addEventListener("click", function () { elementToggleFunc(this); });
65 |
66 | // add event in all select items
67 | for (let i = 0; i < selectItems.length; i++) {
68 | selectItems[i].addEventListener("click", function () {
69 |
70 | let selectedValue = this.innerText.toLowerCase();
71 | selectValue.innerText = this.innerText;
72 | elementToggleFunc(select);
73 | filterFunc(selectedValue);
74 |
75 | });
76 | }
77 |
78 | // filter variables
79 | const filterItems = document.querySelectorAll("[data-filter-item]");
80 |
81 | const filterFunc = function (selectedValue) {
82 |
83 | for (let i = 0; i < filterItems.length; i++) {
84 |
85 | if (selectedValue === "all") {
86 | filterItems[i].classList.add("active");
87 | } else if (selectedValue === filterItems[i].dataset.category) {
88 | filterItems[i].classList.add("active");
89 | } else {
90 | filterItems[i].classList.remove("active");
91 | }
92 |
93 | }
94 |
95 | }
96 |
97 | // add event in all filter button items for large screen
98 | let lastClickedBtn = filterBtn[0];
99 |
100 | for (let i = 0; i < filterBtn.length; i++) {
101 |
102 | filterBtn[i].addEventListener("click", function () {
103 |
104 | let selectedValue = this.innerText.toLowerCase();
105 | selectValue.innerText = this.innerText;
106 | filterFunc(selectedValue);
107 |
108 | lastClickedBtn.classList.remove("active");
109 | this.classList.add("active");
110 | lastClickedBtn = this;
111 |
112 | });
113 |
114 | }
115 |
116 |
117 |
118 | // contact form variables
119 | const form = document.querySelector("[data-form]");
120 | const formInputs = document.querySelectorAll("[data-form-input]");
121 | const formBtn = document.querySelector("[data-form-btn]");
122 |
123 | // add event to all form input field
124 | for (let i = 0; i < formInputs.length; i++) {
125 | formInputs[i].addEventListener("input", function () {
126 |
127 | // check form validation
128 | if (form.checkValidity()) {
129 | formBtn.removeAttribute("disabled");
130 | } else {
131 | formBtn.setAttribute("disabled", "");
132 | }
133 |
134 | });
135 | }
136 |
137 |
138 |
139 | // page navigation variables
140 | const navigationLinks = document.querySelectorAll("[data-nav-link]");
141 | const pages = document.querySelectorAll("[data-page]");
142 |
143 | // add event to all nav link
144 | for (let i = 0; i < navigationLinks.length; i++) {
145 | navigationLinks[i].addEventListener("click", function () {
146 |
147 | for (let i = 0; i < pages.length; i++) {
148 | if (this.innerHTML.toLowerCase() === pages[i].dataset.page) {
149 | pages[i].classList.add("active");
150 | navigationLinks[i].classList.add("active");
151 | window.scrollTo(0, 0);
152 | } else {
153 | pages[i].classList.remove("active");
154 | navigationLinks[i].classList.remove("active");
155 | }
156 | }
157 |
158 | });
159 | }
--------------------------------------------------------------------------------