diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..6b665aa --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "liveServer.settings.port": 5501 +} diff --git a/images/myPhoto.png b/images/myPhoto.png new file mode 100644 index 0000000..7426724 Binary files /dev/null and b/images/myPhoto.png differ diff --git a/images/tom-nora.jpg b/images/tom-nora.jpg new file mode 100644 index 0000000..cc27a72 Binary files /dev/null and b/images/tom-nora.jpg differ diff --git a/index.css b/index.css new file mode 100644 index 0000000..a087ec5 --- /dev/null +++ b/index.css @@ -0,0 +1,185 @@ +body { + background-image: url(/images/tom-nora.jpg); + color:rgb(80, 25, 4); + font-family: 'Poppins'; + font-size: 40px; + margin: 5px; + padding: 5px; +} + +section { + margin: 5px; + padding: 2px; +} + +h1 { + font-size: 4rem; + font-family: 'Poppins'; + font-weight: bold +} + +h2 { + font-family: 'Poppins'; + font-weight: bold; +} + +.experience li{ +text-align: center; +border: 5px solid bisque; +border-radius: 10px; +margin-top: 10px; +padding: 5px; +background-color: lemonchiffon; +list-style-type: none; +border-radius: 500px; +max-width: fit-content; +} + +#skills ul { + display: grid; + grid-template-columns: repeat(3, 1fr); + grid-gap: 10px; + justify-content: center; +} + +#skills li { + text-align: center; + border: 1px dashed brown; + margin: 20px 0; + padding: 20px; + list-style-type: none; + border-radius: 400px; + max-width: fit-content; +} +#skills li:hover { + background-color: rgb(200, 138, 216); + color:cornsilk; + cursor: pointer; +} + +#pic { + display: grid; + grid-template-columns: repeat(3, 1fr); + box-shadow: none; +} + +label { + color: rgb(80, 25, 4);; +} + +input { + width: 30%; + height: 50% auto; + padding: 12px 20px; + margin: 8px 0; + box-sizing: border-box; + border-radius: 4px; +} + + + +.button { + padding: 25px; + margin-top: 10px; + background-color: rgb(126, 24, 24); + color: white; + font-size: 2rem; +} + +button:hover { + background-color: rgb(200, 138, 216); + color: rgb(126, 24, 24); +} + +button: { + color: white; + font-size: 1rem; +} + +footer { + background-color: rgb(126, 24, 24); + width: 100%; + color: white; + margin-top: 20px; + padding: 20px; +} + +#my_photo { + border: 5px sold powderblue; + border-style: inset; + border-radius: 15px; + box-shadow: 20px 15px rgb(134, 75, 73); +} + +a { + text-decoration: none; +} + +.nava{ + display: flex; + justify-content: space-evenly; + width: 100%; + position: sticky ; + margin-top: 30px; +} + +.nav-item { + font-family: 'Poppins'; + list-style-type: none; +} + +.message-list { + display: flex; + justify-content: space-between; + +} + +textarea { + padding: 20px; +} +@media all and (max-width: 800px) { + body { + font-size: 20px; + } + .nava { + display:flex ; + Flex-direction : column; + } + .nav-item { + padding: 20px; + font-size: 35px; + } + h1 { + margin-left: 10px; + font-size: 35px; + } + + #skills li { + padding: 5px; + + } + + #pic { + display:flex ; + Flex-direction : column + } + + + + #skills ul { + grid-template-columns: repeat(2, 1fr); + } +} + +@media all and (max-width: 500px) { + .nav-item { + padding: 5px; + font-size: 20px; + } + + .nava { + display:flex ; + Flex-direction : column; + + } +} diff --git a/index.html b/index.html new file mode 100644 index 0000000..e6e63f9 --- /dev/null +++ b/index.html @@ -0,0 +1,105 @@ + + + + + + + + + + + My Portfolio + + + + + +

Yulia Lopatko

+ + cuddly + +
+

About

+ +
+ +
+

Experience

+

Before starting a development career, I earned over a decade of proven mastery in web content management.

+
+ +
+

Skills

+ +
+ +
+

Projects

+ + +
+ +
+

Connect

+
+ ; + ; + ; +
+
+
+

Leave a Message

+
+ + +
+ + +
+ + +
+ +
+
+ +
+

Messages

+ +
+ + + + + + diff --git a/index.js b/index.js new file mode 100644 index 0000000..d254372 --- /dev/null +++ b/index.js @@ -0,0 +1,113 @@ +const today = new Date(); +const thisYear = today.getFullYear(); +//console.log("this is year!", thisYear); +const footer = document.querySelector('footer'); +const copyright = document.createElement('p'); + +copyright.innerHTML = `Yulia Lopatko & copy ${thisYear} ♘`; +footer.appendChild(copyright); + +const skills= [ + "HTML", + "Node.js", + "Cypress", + 'Figma', + 'API', + 'CSS', + 'JavaScript', + 'DevTools', + 'Postman', +]; + +const skillsSection = document.getElementById('skills') +const skillsList = skillsSection.querySelector('ul') + +for(let i = 0; i< skills.length; i++){ + let skill = document.createElement('li'); + skill.innerText = skills[i]; + skillsList.appendChild(skill); +}; + +const messageForm = document.forms.leave_message; + +messageForm.addEventListener("submit", (event) => { + event.preventDefault(); + + const usersName = event.target.usersName.value; + const usersEmail = event.target.usersEmail.value; + let usersMessage = event.target.usersMessage.value; + + const messageSection = document.getElementById("messages"); + const messageList = messageSection.querySelector("ul"); + let newMessage = document.createElement("li"); + + newMessage.innerHTML = `${usersName}says: ${usersMessage}`; + + const removeButton = document.createElement("button"); + removeButton.innerText = "remove"; + removeButton.type = "button"; + + removeButton.addEventListener("click", (event) => { + const entry = event.target.parentNode; + entry.remove(); + }); + newMessage.appendChild(removeButton); + // newMessage.appendChild(editButton); + messageList.appendChild(newMessage); + //editForm.remove(); + //}); + + //newMessage.appendChild(editButton); + + messageForm.reset(); +}); + +const dateFixer = (date) => { + return date.slice(0, 10); +} +// Method for gettiing info from GitHub +fetch("https://api.github.com/users/engineeryulia/repos") +.then((response) => { +if (!response.ok) { +throw new Error(response.statusText); +} +return response.json(); +}) +.then((repositories) => { + +// selecting ul in projects section +const projectSection = document.getElementById('projects'); +const projectList = projectSection.querySelector('ul') + +//iterating over repo array to display repo data +for(let i = 0; i < repositories.length; i++) { +const project = document.createElement('li'); + +const projectLink = document.createElement('a'); +projectLink.innerText = repositories[i].name; +projectLink.href = repositories[i].html_url; +projectLink.target = "_blank"; + +const projectDescription = document.createElement('p'); +projectDescription.innerText = repositories[i].description; + +const projectDate = document.createElement('p'); +projectDate.innerText = dateFixer(repositories[i].pushed_at); + +project.appendChild(projectLink); +project.appendChild(projectDate); +project.appendChild(projectDescription); +projectList.appendChild(project); + +//styling +project.classList.add('projectStyle'); + +} +}) +.catch((error) => { +console.warn(error); +const projectSection = document.getElementById('projects'); +const errorMessage = document.createElement('h1'); +errorMessage.innerText = `There was an error! Github error message: ${error.message}`; +projectSection.appendChild(errorMessage); +}); \ No newline at end of file