├── README.md ├── Text Responsive portfolio website Patrick.txt ├── assets ├── css │ └── styles.css ├── img │ ├── blob-border.svg │ ├── blob.svg │ ├── favicon.png │ ├── perfil.png │ ├── project-img-1.jpg │ ├── project-img-2.jpg │ ├── project-img-3.jpg │ ├── project-img-4.jpg │ ├── project-img-5.jpg │ └── project-img-6.jpg └── js │ ├── main.js │ └── scrollreveal.min.js ├── index.html └── preview.png /README.md: -------------------------------------------------------------------------------- 1 | # Responsive Portfolio Website Patrick 2 | ## [Watch it on youtube](https://youtu.be/Y4-xMb-eHOQ) 3 | ### Responsive Portfolio Website Patrick 4 | 5 | - Responsive Portfolio Website Design Using HTML CSS & JavaScript 6 | - Contains animations when scrolling. 7 | - Smooth scrolling in each section. 8 | - Contains a beautiful dark theme. 9 | - The color of the project can be customized. 10 | - Sending emails in the contact section. 11 | - Developed first with the Mobile First methodology, then for desktop. 12 | - Compatible with all mobile devices and with a beautiful and pleasant user interface. 13 | 14 | 💙 Join the channel to see more videos like this. [Bedimcode](https://www.youtube.com/@Bedimcode) 15 | 16 | ![preview img](/preview.png) 17 | -------------------------------------------------------------------------------- /Text Responsive portfolio website Patrick.txt: -------------------------------------------------------------------------------- 1 | ========== HEADER ========== 2 | .nav__logo 3 | Patrick Moz 4 | 5 | .nav__link 6 | Home - About - Services - Projects - Contact 7 | 8 | 9 | ========== HOME ========== 10 | .home__subtitle 11 | Hello, I’m 12 | 13 | .home__title 14 | Patrick Moz 15 | 16 | .home__education 17 | Front-end Developer 18 | 19 | .home__description 20 | With knowledge in web development and 21 | design, I offer the best projects resulting 22 | in quality work. 23 | 24 | .button 25 | Let's Talk 26 | 27 | .home__social 28 | https://github.com/ 29 | https://dribbble.com/ 30 | https://www.linkedin.com/ 31 | 32 | .home__social-icon (clip-path) 33 | polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%) 34 | 35 | 36 | ========== ABOUT ========== 37 | .section__subtitle 38 | My Intro 39 | 40 | .section__title 41 | About Me 42 | 43 | .about__description 44 | Frontend developer, I create web pages with 45 | UI / UX user interface, I have years of 46 | experience and many clients are happy with the 47 | projects carried out. 48 | 49 | .button 50 | Contact Me 51 | 52 | 53 | ========== SKILLS ========== 54 | .section__subtitle 55 | Favorite Skills 56 | 57 | .section__title 58 | My Skills 59 | 60 | .skills__description 61 | See fully what skills I have and perform, 62 | to develop the projects for you. 63 | 64 | .button 65 | See Projects 66 | 67 | .skills__item 68 | HTML & CSS 69 | JavaScript 70 | Bootstrap 71 | React 72 | 73 | Git & GitHub 74 | Figma 75 | Sketch 76 | 77 | 78 | ========== SERVICES ========== 79 | .section__subtitle 80 | My Services 81 | 82 | .section__title 83 | What I Do 84 | 85 | .services__title .services__description 86 | Web Developer 87 | Development of custom web pages. 88 | Using current technologies and 89 | libraries of the labor field. 90 | 91 | UI/UX Designer 92 | I offer design of web interfaces and 93 | mobile applications, design made in 94 | figma, adobe xd and sketch. 95 | 96 | Graphic Design 97 | I make designs at the client's request, 98 | banner design, posters, digital 99 | designs among others. 100 | 101 | 102 | ========== PROJECTS ========== 103 | .section__subtitle 104 | My Jobs 105 | 106 | .section__title 107 | Recent Projects 108 | 109 | .projects__subtitle .projects__title .projects__button 110 | Web 111 | Modern website 112 | View demo 113 | 114 | 115 | ========== CONTACT ========== 116 | .section__subtitle 117 | Get In Touch 118 | 119 | .section__title 120 | Contact Me 121 | 122 | .contact__input (placeholder) 123 | Enter your name 124 | Enter your email 125 | Enter your message 126 | 127 | .button (type="submit") 128 | Send Message 129 | 130 | 131 | ========== EMAIL JS CONTACT ========== 132 | Before proceeding, I recommend creating your EmailJs account(https://www.emailjs.com/) 133 | 134 | // serviceID - templateID - #form - publicKey 135 | 136 | // Show sent message 137 | 138 | Message sent successfully 139 | 140 | // Remove message after five seconds 141 | 142 | // Clear input fields 143 | 144 | // Show error message 145 | 146 | Message not sent (service error) 147 | 148 | 149 | * Copy this code into your (Email Template) 150 | 151 | Names: {{user_name}} 152 | 153 | Email: {{user_email}} 154 | 155 | Project: {{user_project}} 156 | 157 | Best wishes, 158 | EmailJS team 159 | 160 | 161 | ========== FOOTER ========== 162 | .footer__title 163 | Patrick Moz 164 | 165 | .footer__education 166 | Front-end Developer 167 | 168 | .footer__social-link 169 | https://www.facebook.com/ 170 | https://www.instagram.com/ 171 | https://twitter.com/ 172 | 173 | .footer__copy 174 | © Copyright Bedimcode. All rights reserved 175 | 176 | .footer__social-icon (clip-path) 177 | polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%) 178 | -------------------------------------------------------------------------------- /assets/css/styles.css: -------------------------------------------------------------------------------- 1 | /*=============== GOOGLE FONTS ===============*/ 2 | @import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600&display=swap"); 3 | 4 | /*=============== VARIABLES CSS ===============*/ 5 | :root { 6 | --header-height: 3.5rem; 7 | 8 | /*========== Colors ==========*/ 9 | /*Color mode HSL(hue, saturation, lightness)*/ 10 | /* 11 | Change favorite color 12 | Default: hsl(162, 100%, 40%) 13 | Orange: hsl(14, 100%, 65%) - Blue: hsl(210, 100%, 70%) 14 | Pink: hsl(356, 100%, 75%) - Purple: hsl(250, 100%, 75%) 15 | 16 | For more colors visit: https://colors.dopely.top/color-pedia 17 | -> Choose any color 18 | -> click on tab (Color Conversion) 19 | -> Copy the color mode (HSL) 20 | */ 21 | 22 | --hue: 162; 23 | --first-color: hsl(var(--hue), 100%, 40%); 24 | --first-color-alt: hsl(var(--hue), 56%, 35%); 25 | --title-color: hsl(228, 8%, 95%); 26 | --text-color: hsl(228, 8%, 65%); 27 | --body-color: hsl(228, 15%, 20%); 28 | --container-color: hsl(228, 15%, 15%); 29 | 30 | /*========== Font and typography ==========*/ 31 | /*.5rem = 8px | 1rem = 16px ...*/ 32 | --body-font: "Poppins", sans-serif; 33 | --biggest-font-size: 2rem; 34 | --bigger-font-size: 1.25rem; 35 | --h1-font-size: 1.5rem; 36 | --h2-font-size: 1.25rem; 37 | --h3-font-size: 1rem; 38 | --normal-font-size: .938rem; 39 | --small-font-size: .813rem; 40 | --smaller-font-size: .75rem; 41 | 42 | /*========== Font weight ==========*/ 43 | --font-regular: 400; 44 | --font-medium: 500; 45 | --font-semi-bold: 600; 46 | 47 | /*========== z index ==========*/ 48 | --z-tooltip: 10; 49 | --z-fixed: 100; 50 | } 51 | 52 | /*========== Responsive typography ==========*/ 53 | @media screen and (min-width: 1152px) { 54 | :root { 55 | --biggest-font-size: 4rem; 56 | --bigger-font-size: 2rem; 57 | --h1-font-size: 2.25rem; 58 | --h2-font-size: 1.5rem; 59 | --h3-font-size: 1.25rem; 60 | --normal-font-size: 1rem; 61 | --small-font-size: .875rem; 62 | --smaller-font-size: .813rem; 63 | } 64 | } 65 | 66 | /*=============== BASE ===============*/ 67 | * { 68 | box-sizing: border-box; 69 | padding: 0; 70 | margin: 0; 71 | } 72 | 73 | html { 74 | scroll-behavior: smooth; 75 | } 76 | 77 | input, 78 | textarea, 79 | button, 80 | body { 81 | font-family: var(--body-font); 82 | font-size: var(--normal-font-size); 83 | } 84 | 85 | body { 86 | background-color: var(--body-color); 87 | color: var(--text-color); 88 | } 89 | 90 | input, 91 | textarea, 92 | button { 93 | outline: none; 94 | border: none; 95 | } 96 | 97 | h1, h2, h3, h4 { 98 | color: var(--title-color); 99 | font-weight: var(--font-medium); 100 | } 101 | 102 | ul { 103 | list-style: none; 104 | } 105 | 106 | a { 107 | text-decoration: none; 108 | } 109 | 110 | img, 111 | svg { 112 | max-width: 100%; 113 | height: auto; 114 | } 115 | 116 | /*=============== REUSABLE CSS CLASSES ===============*/ 117 | .container { 118 | max-width: 1120px; 119 | margin-inline: 1.5rem; 120 | } 121 | 122 | .grid { 123 | display: grid; 124 | gap: 1.5rem; 125 | } 126 | 127 | .section { 128 | padding-block: 5rem 2rem; 129 | } 130 | 131 | .section__title, 132 | .section__subtitle { 133 | text-align: center; 134 | color: var(--title-color); 135 | font-weight: var(--font-semi-bold); 136 | } 137 | 138 | .section__title { 139 | font-size: var(--h1-font-size); 140 | margin-bottom: 1.5rem; 141 | } 142 | 143 | .section__subtitle { 144 | font-size: var(--small-font-size); 145 | margin-bottom: .25rem; 146 | } 147 | 148 | .section__subtitle span { 149 | color: var(--first-color); 150 | } 151 | 152 | .main { 153 | overflow: hidden; /* For animation ScrollReveal */ 154 | } 155 | 156 | /*=============== HEADER & NAV ===============*/ 157 | 158 | 159 | /* Navigation for mobile devices */ 160 | 161 | 162 | /* Show menu */ 163 | 164 | 165 | /* Add blur to header */ 166 | 167 | 168 | /* Active link */ 169 | 170 | 171 | /*=============== HOME ===============*/ 172 | 173 | 174 | /*=============== BUTTON ===============*/ 175 | 176 | 177 | /*=============== ABOUT ===============*/ 178 | 179 | 180 | /*=============== SKILLS ===============*/ 181 | 182 | 183 | /*=============== SERVICES ===============*/ 184 | 185 | 186 | /*=============== PROJECTS ===============*/ 187 | 188 | 189 | /*=============== CONTACT ===============*/ 190 | 191 | 192 | /*=============== FOOTER ===============*/ 193 | 194 | 195 | /*=============== SCROLL BAR ===============*/ 196 | 197 | 198 | /*=============== SCROLL UP ===============*/ 199 | 200 | 201 | /* Show Scroll Up */ 202 | 203 | 204 | /*=============== BREAKPOINTS ===============*/ 205 | /* For small devices */ 206 | 207 | 208 | /* For medium devices */ 209 | 210 | 211 | /* For large devices */ 212 | -------------------------------------------------------------------------------- /assets/img/blob-border.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /assets/img/blob.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 10 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /assets/img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedimcode/responsive-portfolio-website-patrick/08def41ca3450be01cec3f901189257c33e4c9b2/assets/img/favicon.png -------------------------------------------------------------------------------- /assets/img/perfil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedimcode/responsive-portfolio-website-patrick/08def41ca3450be01cec3f901189257c33e4c9b2/assets/img/perfil.png -------------------------------------------------------------------------------- /assets/img/project-img-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedimcode/responsive-portfolio-website-patrick/08def41ca3450be01cec3f901189257c33e4c9b2/assets/img/project-img-1.jpg -------------------------------------------------------------------------------- /assets/img/project-img-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedimcode/responsive-portfolio-website-patrick/08def41ca3450be01cec3f901189257c33e4c9b2/assets/img/project-img-2.jpg -------------------------------------------------------------------------------- /assets/img/project-img-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedimcode/responsive-portfolio-website-patrick/08def41ca3450be01cec3f901189257c33e4c9b2/assets/img/project-img-3.jpg -------------------------------------------------------------------------------- /assets/img/project-img-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedimcode/responsive-portfolio-website-patrick/08def41ca3450be01cec3f901189257c33e4c9b2/assets/img/project-img-4.jpg -------------------------------------------------------------------------------- /assets/img/project-img-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedimcode/responsive-portfolio-website-patrick/08def41ca3450be01cec3f901189257c33e4c9b2/assets/img/project-img-5.jpg -------------------------------------------------------------------------------- /assets/img/project-img-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedimcode/responsive-portfolio-website-patrick/08def41ca3450be01cec3f901189257c33e4c9b2/assets/img/project-img-6.jpg -------------------------------------------------------------------------------- /assets/js/main.js: -------------------------------------------------------------------------------- 1 | /*=============== SHOW MENU ===============*/ 2 | 3 | 4 | /*=============== REMOVE MENU MOBILE ===============*/ 5 | 6 | 7 | /*=============== ADD BLUR TO HEADER ===============*/ 8 | 9 | 10 | /*=============== EMAIL JS ===============*/ 11 | 12 | 13 | /*=============== SHOW SCROLL UP ===============*/ 14 | 15 | 16 | /*=============== SCROLL SECTIONS ACTIVE LINK ===============*/ 17 | 18 | 19 | /*=============== SCROLL REVEAL ANIMATION ===============*/ 20 | -------------------------------------------------------------------------------- /assets/js/scrollreveal.min.js: -------------------------------------------------------------------------------- 1 | /*! @license ScrollReveal v4.0.9 2 | 3 | Copyright 2021 Fisssion LLC. 4 | 5 | Licensed under the GNU General Public License 3.0 for 6 | compatible open source projects and non-commercial use. 7 | 8 | For commercial sites, themes, projects, and applications, 9 | keep your source code private/proprietary by purchasing 10 | a commercial license from https://scrollrevealjs.org/ 11 | */ 12 | var ScrollReveal=function(){"use strict";var r={delay:0,distance:"0",duration:600,easing:"cubic-bezier(0.5, 0, 0, 1)",interval:0,opacity:0,origin:"bottom",rotate:{x:0,y:0,z:0},scale:1,cleanup:!1,container:document.documentElement,desktop:!0,mobile:!0,reset:!1,useDelay:"always",viewFactor:0,viewOffset:{top:0,right:0,bottom:0,left:0},afterReset:function(){},afterReveal:function(){},beforeReset:function(){},beforeReveal:function(){}};var n={success:function(){document.documentElement.classList.add("sr"),document.body?document.body.style.height="100%":document.addEventListener("DOMContentLoaded",function(){document.body.style.height="100%"})},failure:function(){return document.documentElement.classList.remove("sr"),{clean:function(){},destroy:function(){},reveal:function(){},sync:function(){},get noop(){return!0}}}};function o(e){return"object"==typeof window.Node?e instanceof window.Node:null!==e&&"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName}function u(e,t){if(void 0===t&&(t=document),e instanceof Array)return e.filter(o);if(o(e))return[e];if(n=e,i=Object.prototype.toString.call(n),"object"==typeof window.NodeList?n instanceof window.NodeList:null!==n&&"object"==typeof n&&"number"==typeof n.length&&/^\[object (HTMLCollection|NodeList|Object)\]$/.test(i)&&(0===n.length||o(n[0])))return Array.prototype.slice.call(e);var n,i;if("string"==typeof e)try{var r=t.querySelectorAll(e);return Array.prototype.slice.call(r)}catch(e){return[]}return[]}function s(e){return null!==e&&e instanceof Object&&(e.constructor===Object||"[object Object]"===Object.prototype.toString.call(e))}function f(n,i){if(s(n))return Object.keys(n).forEach(function(e){return i(n[e],e,n)});if(n instanceof Array)return n.forEach(function(e,t){return i(e,t,n)});throw new TypeError("Expected either an array or object literal.")}function h(e){for(var t=[],n=arguments.length-1;0=[].concat(r.body).shift())return j.call(this,n,i,-1,t),c.call(this,e,{reveal:!0,pristine:t});if(!n.blocked.foot&&i===[].concat(o.foot).shift()&&i<=[].concat(r.body).pop())return j.call(this,n,i,1,t),c.call(this,e,{reveal:!0,pristine:t})}}function E(e){var t=Math.abs(e);if(isNaN(t))throw new RangeError("Invalid sequence interval.");this.id=b(),this.interval=Math.max(t,16),this.members=[],this.models={},this.blocked={head:!1,foot:!1}}function d(e,i,r){var o=this;this.head=[],this.body=[],this.foot=[],f(e.members,function(e,t){var n=r.elements[e];n&&n[i]&&o.body.push(t)}),this.body.length&&f(e.members,function(e,t){var n=r.elements[e];n&&!n[i]&&(t 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | Responsive portfolio website - Bedimcode 17 | 18 | 19 | 20 | 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 |
56 | 57 | 58 |
59 | 60 |
61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedimcode/responsive-portfolio-website-patrick/08def41ca3450be01cec3f901189257c33e4c9b2/preview.png --------------------------------------------------------------------------------