diff --git a/1-exercise-solutions/Youtube-video-page-clone/Thumbs.db b/1-exercise-solutions/Youtube-video-page-clone/Thumbs.db new file mode 100644 index 0000000..b8bdb6b Binary files /dev/null and b/1-exercise-solutions/Youtube-video-page-clone/Thumbs.db differ diff --git a/1-exercise-solutions/Youtube-video-page-clone/icons/next.svg b/1-exercise-solutions/Youtube-video-page-clone/icons/next.svg new file mode 100644 index 0000000..5e4a44d --- /dev/null +++ b/1-exercise-solutions/Youtube-video-page-clone/icons/next.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/1-exercise-solutions/Youtube-video-page-clone/icons/youtube-logo.svg b/1-exercise-solutions/Youtube-video-page-clone/icons/youtube-logo.svg new file mode 100644 index 0000000..728f4ff --- /dev/null +++ b/1-exercise-solutions/Youtube-video-page-clone/icons/youtube-logo.svg @@ -0,0 +1 @@ + diff --git a/1-exercise-solutions/Youtube-video-page-clone/images/ad-image.jpg b/1-exercise-solutions/Youtube-video-page-clone/images/ad-image.jpg new file mode 100644 index 0000000..9aeab49 Binary files /dev/null and b/1-exercise-solutions/Youtube-video-page-clone/images/ad-image.jpg differ diff --git a/1-exercise-solutions/Youtube-video-page-clone/images/mqdefault_6s.webp b/1-exercise-solutions/Youtube-video-page-clone/images/mqdefault_6s.webp new file mode 100644 index 0000000..f47d674 Binary files /dev/null and b/1-exercise-solutions/Youtube-video-page-clone/images/mqdefault_6s.webp differ diff --git a/1-exercise-solutions/Youtube-video-page-clone/images/pfp.jpg b/1-exercise-solutions/Youtube-video-page-clone/images/pfp.jpg new file mode 100644 index 0000000..f91b447 Binary files /dev/null and b/1-exercise-solutions/Youtube-video-page-clone/images/pfp.jpg differ diff --git a/1-exercise-solutions/Youtube-video-page-clone/images/video-suggestion.jpg b/1-exercise-solutions/Youtube-video-page-clone/images/video-suggestion.jpg new file mode 100644 index 0000000..f2daa18 Binary files /dev/null and b/1-exercise-solutions/Youtube-video-page-clone/images/video-suggestion.jpg differ diff --git a/1-exercise-solutions/Youtube-video-page-clone/index.html b/1-exercise-solutions/Youtube-video-page-clone/index.html new file mode 100644 index 0000000..315fa04 --- /dev/null +++ b/1-exercise-solutions/Youtube-video-page-clone/index.html @@ -0,0 +1,1304 @@ + + + Yotube video + + + + + + + + + + + + + + +
+
+
+
+ menu +
+ +
+ +
+ +
+ +
+
+ mic +
+
+ +
+
+ upload +
+
+ + notifications + + 2 +
+
+ account_circle +
+
+ +
+
+ +
+ +
+
+ menu + +
+ +
+ + + +
+
+ About + Press + Copyright + Contact us + Creators + Advertise + Developers +
+ +
+ Terms + Privacy + Policy & Safety + How YouTube works +
+ Test new features +
+ +
© 2023 Google LLC
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+

HTML & CSS Full Course - Beginner to Pro +

+
+ +
+ +
+ + +
+ SuperSim... +
195K...
+
+
+ + + +
+ + + +
+ +
+ +
+ +
+ +
+
+ +
+ +
+
+
+ 4,486,311 views Feb 5, 2022 + 1. Tutorials + +
+
+ In this full course, we learn how to build websites with HTML and CSS, and get started as a software engineer. + +
+
+

Exercise solutions: https://supersimple.dev/courses/html-...

+

Copy of the code: https://supersimple.dev/courses/html-...

+

HTML and CSS reference: https://supersimple.dev/html

+
+
+

Lessons:

+

0:00 Intro

+

1:02 1. HTML Basics

+

17:42 2. CSS Basics

+

44:39 3. Hovers, Transitions, Shadows

+

1:03:10 4. Chrome DevTools & CSS Box Model

+

1:17:30 5. Text Styles

+

1:52:18 6. The HTML Structure

+

2:11:08 7. Images and Text Boxes

+

2:25:42 8. CSS Display Property

+

2:34:58 9. The div Element

+

2:46:55 10. Nested Layouts Technique

+

3:16:58 11. CSS Grid

+

3:43:58 12. Flexbox

+

4:15:21 13. Nested Flexbox

+

4:44:36 14. CSS Position

+

5:07:14 15. Position Absolute and Relative

+

5:33:49 16. Finish the Project

+

6:07:46 17. More CSS Features

+

6:30:21 Outro

+ +
+
+ Additional Information: + This HTML CSS full course is a series of HTML CSS tutorials, teaching the major skills that we need to create complex websites. Each HTML CSS tutorial builds on a project and provides some HTML CSS exercises to practice what we learned. By the end, we'll learn the basics of web development and we'll be on our way to becoming a web developer and software engineer. +
+
+ + #htmltutorial #csstutorial #htmlcssfullcourse #html #css #tutorial #fullcourse #course #htmltutorial #csstutorial #htmlcsstutorial #htmlfullcourse #cssfullcourse #webdevelopment #advancedhtmltutorial #advancedcsstutorial #coding #codingtutorial #softwareengineer #softwareengineering #learntocode #supersimpledev + +
+
+ +
+
+
Chapters
+ View all +
+ + + +
+
Featured playlist
+
+ + + + +
+ +
+ Show less +
+ +
+ +
+ +
+ +
+ + + + +
+ +
+ +
+ +
+ +
+ +
+
Lorem Ipsu AAA Online
+
Awarded by the University of London with academic direction from LSE.
+
Ad · Lorem Ipsu AAA
+ + +
+ +
+
+ more_vert +
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
Backend web development - a complete overview +
+
+ SuperSimpleDev +
1M views · 1 year ago
+
+
+ +
+
+ more_vert +
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
Backend web development - a complete overview +
+
+ SuperSimpleDev +
1M views · 1 year ago
+
+
+ +
+
+ more_vert +
+
+ +
+
+ +
+ +
+ +
+ +
+ +
+
Backend web development - a complete overview +
+
+ SuperSimpleDev +
1M views · 1 year ago
+
+
+ +
+
+ more_vert +
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
Backend web development - a complete overview +
+
+ SuperSimpleDev +
1M views · 1 year ago
+
+
+ +
+
+ more_vert +
+
+ +
+
+ +
+ +
+ +
+ +
+ +
+
Backend web development - a complete overview +
+
+ SuperSimpleDev +
1M views · 1 year ago
+
+
+ +
+
+ more_vert +
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
Backend web development - a complete overview +
+
+ SuperSimpleDev +
1M views · 1 year ago
+
+
+ +
+
+ more_vert +
+
+ +
+
+ +
+ +
+ +
+ +
+ +
+
Backend web development - a complete overview +
+
+ SuperSimpleDev +
1M views · 1 year ago
+
+
+ +
+
+ more_vert +
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
Backend web development - a complete overview +
+
+ SuperSimpleDev +
1M views · 1 year ago
+
+
+ +
+
+ more_vert +
+
+ +
+
+ +
+ +
+ +
+ +
+ +
+
Backend web development - a complete overview +
+
+ SuperSimpleDev +
1M views · 1 year ago
+
+
+ +
+
+ more_vert +
+
+ +
+
+ +
+ +
+ +
+ +
+ +
+
Backend web development - a complete overview +
+
+ SuperSimpleDev +
1M views · 1 year ago
+
+
+ +
+
+ more_vert +
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
Backend web development - a complete overview +
+
+ SuperSimpleDev +
1M views · 1 year ago
+
+
+ +
+
+ more_vert +
+
+ +
+
+ +
+ +
+ +
+ +
+ +
+
Backend web development - a complete overview +
+
+ SuperSimpleDev +
1M views · 1 year ago
+
+
+ +
+
+ more_vert +
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
Backend web development - a complete overview +
+
+ SuperSimpleDev +
1M views · 1 year ago
+
+
+ +
+
+ more_vert +
+
+ +
+
+ +
+ +
+ +
+ +
+ +
+
Backend web development - a complete overview +
+
+ SuperSimpleDev +
1M views · 1 year ago
+
+
+ +
+
+ more_vert +
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
Backend web development - a complete overview +
+
+ SuperSimpleDev +
1M views · 1 year ago
+
+
+ +
+
+ more_vert +
+
+ +
+
+ +
+ +
+ +
+
6,268 Comments
+
+ sort + Sort by +
+
+ +
+
+ account_circle +
+ + +
+ + +
+ menu + Cancel + Comment +
+ +
+
+ +
+ +
+
+ +
+
+
+
@LoremIpsum
+
11 months ago
+
+
+ Lorem ipsum dolor, sit amet consectetur adipisicing elit. Praesentium repellendus necessitatibus id unde nulla amet temporibus ab. +
+
+ + + +
+ +
+
+ Reply +
+
+
+
+ + expand_less + +
+
+ +
+
+ · 15 replies +
+
+ +
+
+
+ +
+
+
+
@LoremIpsum
+
11 months ago
+
+
+ Lorem ipsum dolor, sit amet consectetur adipisicing elit. Praesentium repellendus necessitatibus id unde nulla amet temporibus ab. Iure unde magnam corrupti repellat consectetur pariatur illo, odit praesentium dolor placeat laborum. +
+
+ + + +
+ Reply +
+
+ +
+
+ +
+
+ +
+
+
+
@LoremIpsum
+
11 months ago
+
+
+ Lorem ipsum dolor, sit amet consectetur adipisicing elit. Praesentium repellendus necessitatibus id unde nulla amet temporibus ab. Iure unde magnam corrupti repellat consectetur pariatur illo, odit praesentium dolor placeat laborum. +
+
+ + + +
+ Reply +
+
+ +
+
+ +
+
+ +
+
+
+
@LoremIpsum
+
11 months ago
+
+
+ Lorem ipsum dolor, sit amet consectetur adipisicing elit. +
+
+ + + +
+ Reply +
+
+ +
+
+
+
+
+ +
+
+ +
+
+
+
@LoremIpsum
+
11 months ago
+
+
+ Lorem ipsum dolor, sit amet consectetur adipisicing elit. Praesentium repellendus necessitatibus id unde nulla amet temporibus ab. Iure unde magnam corrupti repellat consectetur pariatur illo, odit praesentium dolor placeat laborum. Libero aut saepe rerum debitis, sint aliquid officiis porro perferendis, amet error repellat enim, facere necessitatibus similique rem unde! Tempora impedit ab vitae minima possimus excepturi pariatur facere nostrum aliquid! +
+
+ + + +
+ +
+
+ Reply +
+
+
+
+ + expand_more + +
+
+ +
+
+ · 15 replies +
+
+
+
+ +
+
+ +
+
+
+
@LoremIpsum
+
11 months ago
+
+
+ Lorem ipsum dolor, sit amet consectetur adipisicing elit. Praesentium repellendus necessitatibus id unde nulla amet temporibus ab. Iure unde magnam corrupti repellat consectetur pariatur illo, odit praesentium dolor placeat laborum. +
+
+ + + +
+ +
+
+ Reply +
+
+
+
+ + expand_more + +
+
+ · 1 replies +
+
+
+
+ +
+
+ +
+
+
+
@LoremIpsum
+
11 months ago
+
+
+ Lorem ipsum dolor +
+
+ + + + +
+ Reply +
+
+ +
+
+ + +
+ +
+ + +
+ + + + \ No newline at end of file diff --git a/1-exercise-solutions/Youtube-video-page-clone/script.js b/1-exercise-solutions/Youtube-video-page-clone/script.js new file mode 100644 index 0000000..df8c324 --- /dev/null +++ b/1-exercise-solutions/Youtube-video-page-clone/script.js @@ -0,0 +1,156 @@ +const headerBtn = document.getElementById('js-header-menu'); +const sidebarbtn = document.getElementById('js-aside-menu'); +const sidebar = document.getElementsByClassName('aside-container')[0]; +const body = document.querySelector('body'); +const overlay = document.createElement('div'); + +headerBtn.addEventListener('click', () => { + sidebar.style.display = 'block'; + body.style.overflow = 'hidden'; + overlay.classList.add('overlay'); + body.appendChild(overlay); +}); + +body.addEventListener('click', (event) => { + if (sidebar.classList.contains('open')) { + event.preventDefault(); + } +}); + +sidebarbtn.addEventListener('click', () => { + sidebar.style.display = 'none'; + body.style.overflow = 'auto'; + overlay.classList.remove('overlay'); +}); + +// comment section JS + +const commentInput = document.getElementById('js-comment-input'); +const commentButton = document.getElementById('Comment'); + +commentInput.addEventListener('keydown', (e) => { + commentButton.style.backgroundColor = '#065fd4'; + commentButton.style.color = 'white'; + +}); + +commentInput.addEventListener('keyup', (e) => { + if (commentInput.value === '') { + commentButton.style.backgroundColor = 'var(--hover-color)'; + commentButton.style.color = 'black'; + } +}); + +// comment expand more/less + +const expandLess = document.getElementById('js-expand-less'); +const expandLessText = document.getElementById('js-expand-less-text'); +const repliedComment = document.getElementById('js-replied-comment'); + +expandLessText.addEventListener('click', () => { + if (expandLess.innerText === 'expand_more') { + expandLess.innerText = 'expand_less'; + repliedComment.style.display = 'block'; + } else { + repliedComment.style.display = 'none'; + expandLess.innerText = 'expand_more'; + } +}); + + +expandLess.addEventListener('click', () => { + if (expandLess.innerText === 'expand_more') { + expandLess.innerText = 'expand_less'; + repliedComment.style.display = 'block'; + } else { + repliedComment.style.display = 'none'; + expandLess.innerText = 'expand_more'; + } +}); + +// add-remove-likes + +const likesSpan = document.getElementsByClassName('comment-likes-count')[0]; +let likesCount = document.getElementsByClassName('comment-likes-count')[0]; +const likedBtn = document.getElementById('js-comment-liked'); +const dislikedBtn = document.getElementById('js-comment-disliked'); + +let likesDislikes = 0; + +likedBtn.addEventListener('click', () => { + likesDislikes++; + likesCount.innerText = likesDislikes; +}); + +dislikedBtn.addEventListener('click', () => { + if (likesDislikes <= 0) { + likesCount.innerText = ' '; + return; + } else { + likesDislikes--; + likesCount.innerText = likesDislikes; + } + +}); + + +// add a comment + +const commentsContainer = document.getElementsByClassName('comments-container')[0]; +const newComment = document.createElement('div'); + +commentButton.addEventListener('click', () => { + + if (commentInput.value === '') { + return; + } + + newComment.innerHTML = `
+
+ +
+
+
+
@LoremIpsum
+
${Date()}
+
+
+ ${commentInput.value} +
+
+ + + + +
+ Reply +
+
+ +
+
`; + + commentsContainer.appendChild(newComment); +}); + +// description show less prompt + +const showLess = document.getElementById('description-show-less'); + +const LowerSection = document.getElementsByClassName('video-desctiprion-lower-section')[0]; + +showLess.addEventListener('click', () => { + if (showLess.innerText === 'Show less') { + LowerSection.style.display = 'none'; + showLess.innerText = 'Show more'; + } else { + LowerSection.style.display = 'block'; + showLess.innerText = 'Show less'; + } + +}); \ No newline at end of file diff --git a/1-exercise-solutions/Youtube-video-page-clone/styles/general.css b/1-exercise-solutions/Youtube-video-page-clone/styles/general.css new file mode 100644 index 0000000..84df746 --- /dev/null +++ b/1-exercise-solutions/Youtube-video-page-clone/styles/general.css @@ -0,0 +1,48 @@ +@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap'); + +:root { + --color-white: #ffffff; + --color-black: #303030; + --shadow-color: rgba(132, 139, 200, 0.18); + + --card-border-radius: 2rem; + --border-radius-1: 0.4rem; + --border-radius-2: 0.8rem; + --border-radius-3: 1.2rem; + --default-border: 1px solid rgb(184, 184, 184); + --default-button-border-radius: 0.5rem; + + --searchBar-padding: 0.7rem 0.7rem 0.7rem 0.7rem; + --searchBar-small-padding: 0.7rem 0.2rem 0.7rem 0.3rem; + --button-padding: 0.54rem 0.8rem; + --padding-default: 0.6rem; + --card-padding: 1.8rem; + --padding-1: 1.2rem; + + --default-gap: 1.25rem; + + --logo-width: 100px; + --small-logo-width: 100px; + + --ad-image-width: 150px; + + --video-width: 500px; + + --box-shadow: 0 2rem 3rem var(--shadow-color); + + --default-button: none; + +} + +body { + margin: 0; + padding: 0; + font-family: Poppins; + width: 100%; +} + +a { + text-decoration: none; + color: var(--color-black); +} + diff --git a/1-exercise-solutions/Youtube-video-page-clone/styles/header.css b/1-exercise-solutions/Youtube-video-page-clone/styles/header.css new file mode 100644 index 0000000..89826da --- /dev/null +++ b/1-exercise-solutions/Youtube-video-page-clone/styles/header.css @@ -0,0 +1,73 @@ +.header-container { + + height: 60px; + display: flex; + justify-content: space-between; + position: fixed; + top: 0; + left: 0; + right: 0; + background-color: var(--color-white); + z-index: 1; +} + +.left-section { + align-items: center; + display: flex; + gap: var(--default-gap); + margin-left: var(--default-gap); +} + + +.youtube-logo img { + width: 100px; +} + +.middle-section { + display: flex; + justify-content: center; + align-items: center; + max-width: 500px; + gap: var(--default-gap); + flex: 1; +} + +.middle-section input { + flex: 1; + border: var(--default-border); + border-radius: var(--border-radius-3) 0px 0px var(--border-radius-3); + padding: var(--searchBar-padding); + border-right: var(--default-border); +} + +.middle-section .search-button { + padding: 0.35rem; + border: var(--default-border); + border-radius: 0px var(--border-radius-3) var(--border-radius-3) 0px; + margin-left: -1.32rem; /* Dangerous */ +} + +#mic { + margin-top: 2px; +} + +.right-section { + display: flex; + align-items: center; + margin-right: var(--default-gap); + gap: var(--default-gap); +} + +.top-notification { + position: relative; +} +.right-section #notification { + position: absolute; + font-size: 10px; + background-color: #c00; + top: -5px; + right: -3px; + padding: 1px 5px; + color: white; + border-radius: var(--border-radius-3); +} \ No newline at end of file diff --git a/1-exercise-solutions/Youtube-video-page-clone/styles/main.css b/1-exercise-solutions/Youtube-video-page-clone/styles/main.css new file mode 100644 index 0000000..42ff933 --- /dev/null +++ b/1-exercise-solutions/Youtube-video-page-clone/styles/main.css @@ -0,0 +1,582 @@ +:root { + --color-white: #ffffff; + --color-black: #303030; + --shadow-color: rgba(132, 139, 200, 0.18); + --hover-color: rgb(240, 240, 240); + --color-blue: #065fd4; + --background-blue: rgba(18, 147, 252, 0.171); + + --card-border-radius: 2rem; + --border-radius-1: 0.4rem; + --border-radius-2: 0.8rem; + --border-radius-3: 1.2rem; + --default-border: 1px solid rgb(184, 184, 184); + --image-border: 1px solid rgba(10, 10, 10, 0.171); + --default-button-border-radius: 0.5rem; + + /* + --searchBar-padding: 0.7rem 12rem 0.7rem 1rem; + */ + --searchBar-padding: 0.7rem 10rem 0.7rem 0.7rem; + --searchBar-small-padding: 0.7rem 0.2rem 0.7rem 0.3rem; + --button-padding: 0.54rem 0.7rem; + --padding-default: 0.6rem; + --actions-padding: 2.2rem; + --card-padding: 1.8rem; + --padding-1: 1.2rem; + --channel-padding: 0.6rem 1.9rem; + + --default-gap: 1.25rem; + + --main-margin-top: 5.5rem; + + --logo-width: 100px; + --pfp-width: 45px; + --medium-logo-width: 26px; + --small-logo-width: 20px; + + --ad-image-width: 160px; + --ad-image-height: 175px; + + --video-sug-container-height: 110px; + --video-sug-height: 100px; + + --video-width: 640px; + --video-height: 360px; + + --main-right-section-width: 400px; + --comment-section-width: 600px; + + --box-shadow: 0 2rem 3rem var(--shadow-color); + + --default-button: none; + + --small-font: 12px; + --description-font: 14px; +} + +video { + outline: none; + width: var(--video-width); + height: var(--video-height); +} + +.main-container { + width: 100%; + padding-top: var(--main-margin-top); + display: grid; + grid-template-columns: var(--video-width) var(--main-right-section-width); + gap: var(--default-gap); + justify-content: center; +} + +.main-right-section { + height: 100vh; +} + + + +.top-buttons button { + padding: var(--button-padding); + border: none; + border-radius: var(--border-radius-1); + font-family: Poppins; + font-size: 0.8rem; +} +.top-buttons img { + width: var(--small-logo-width); + height: var(--small-logo-width); +} +.top-buttons button:last-child { + + padding: var(--button-padding); + border-radius: var(--card-border-radius); + background-color: var(--color-white); + transition: all 300ms ease; + cursor: pointer; +} +.top-buttons button:last-child:hover { + background-color: var(--hover-color); +} +.active { + background-color: var(--color-black); + color: white; +} + +.ad { + margin-top: var(--padding-1); + display: flex; +} + +.ad-image img { + width: var(--ad-image-width); + height: var(--ad-image-height); + border-radius: var(--border-radius-1); +} + +.ad-info { + display: flex; +} + +.ad-info-left-section, +.video-suggestion-info { + font-size: var(--small-font); + margin-left: var(--padding-default); +} + +.ad-info-left-section div { + margin-bottom: var(--border-radius-2); +} + +.ad-info-left-section button { + padding: var(--padding-default) 2.3rem var(--padding-default) 1rem; + background-color: var(--background-blue); + color: var(--color-blue); + border: var(--default-button); + border-radius: var(--border-radius-3); + position: relative; +} +.ad-info-left-section button span { + position: absolute; + top: 5px; + right: 5px; +} + +.video-suggestion { + padding-top: 7px; + display: flex; + border-radius: var(--border-radius-1); + height: var(--video-sug-container-height); + margin-bottom: var(--padding-default); + transition: all 300ms ease; + cursor: pointer; +} + +.video-suggestion:hover { + background-color: var(--hover-color); +} + +.video-suggestion:hover .video-suggestion-info-right { + display: block; +} +.video-suggestion-info-right { + display: none; +} + +.video-suggestion img { + object-fit: cover; + width: var(--ad-image-width); + height: var(--video-sug-height); + border-radius: var(--border-radius-1); + border: var(--image-border); +} + +.video-suggestion-info { + display: flex; +} + +.video-suggestion-info div { + margin-bottom: var(--padding-1); +} + +.main-video-generals { + display: flex; + justify-content: space-between; + align-items: center; +} + +.channel { + align-items: center; + display: flex; + gap: var(--default-gap); + font-size: var(--small-font); +} + +.channel img { + width: 2.5rem; + height: 2.5rem; + border-radius: var(--border-radius-3); + +} + +.video-infos button { + border: var(--default-button); + padding: var(--border-radius-1); +} + +.channel-subscribe button { + font-family: Poppins; + position: relative; + padding: var(--channel-padding); + border-radius: var(--border-radius-3); +} +.channel-subscribe button .noti { + position: absolute; + top: 8px; + left: 3px; +} +.channel-subscribe button .expand { + position: absolute; + top: 8px; + right: 3px; +} + + +.video-likes button { + font-family: Poppins; + position: relative; +} + +.video-likes button:first-child { + padding-right: 2.3rem; + padding-left: 1rem; + padding-bottom: 0.1rem; +} + +.video-likes button:last-child { + padding-bottom: 0.1rem; +} + +.like-video { + position: relative; + border-radius: var(--border-radius-3) 0px 0px var(--border-radius-3); + margin-right: -5px; + border-right: 1px solid black; +} + +.likes-count { + margin-left: 2px; + padding-right: 4px; + top: 0.6rem; + border-right: var(--default-border); + position: absolute; +} + +.dislike-video { + border-radius: 0px var(--border-radius-3) var(--border-radius-3) 0px; +} + + +.video-share { + position: relative; +} + +.video-share button { + font-family: Poppins; + padding: var(--channel-padding); + border-radius: var(--border-radius-3); +} + +.video-share button span:first-child { + position: absolute; + top: 6px; + left: 4px; +} +.video-share button span:last-child { + margin-left: 5px; +} + +.video-more-option button { + font-family: Poppins; + position: relative; + padding-top: 0.5rem; + border-radius: var(--border-radius-3); +} + +.channel:hover { + cursor: pointer; +} +.channel-subscribe button:hover, +.video-likes button:hover, +.video-share button:hover, +.video-more-option button:hover { + cursor: pointer; + background-color: rgb(211, 211, 211); + transition: all 300ms ease; +} + + + +.video-description { + background-color: rgb(230, 230, 230); + border-radius: var(--border-radius-2); + font-size: var(--description-font); + margin-top: var(--default-gap); + padding: var(--padding-default); + width: inherit; +} +.blue-texts { + color: var(--color-blue); +} +.solutions { + margin-bottom: var(--padding-1); + padding-bottom: var(--padding-default); +} +.solutions p, .lessons p { + line-height: var(--padding-default); +} + +.lessons { + margin-bottom: var(--default-gap); +} + +.tags { + width: 95%; + margin-top: var(--default-gap); + margin-bottom: var(--default-gap); +} + +.video-desctiprion-upper-section { + border-bottom: var(--default-border); +} + +.lower-section-head { + display: flex; + justify-content: space-between; + margin-top: 5px; + margin-bottom: 5px; +} + +.lower-section-head a, .chapters { + padding: var(--button-padding); + transition: all 300ms ease-out; +} +.lower-section-head a:hover { + background-color: var(--background-blue); + border-radius: var(--border-radius-3); +} + +.lower-section-timestamp-parts { + margin-left: var(--padding-default); + display: flex; + gap: var(--default-gap); + overflow: hidden; + border-bottom: var(--default-border); + padding-bottom: var(--default-gap); +} + + +.timestamp-image img { + width: var(--ad-image-width); + height: var(--video-sug-height); + border-radius: var(--border-radius-1); + position: relative; +} + +.active-border img { + border: 2px solid #065fd4; +} + +.blue-background { + background-color: var(--background-blue); +} + +.featured-playlist { + gap: var(--default-gap); + display: flex; + margin-left: var(--padding-default); +} + +.timestamp-image +{ + position: relative; +} +.playlist-video-count { + position: absolute; + bottom: 0; + left: 0; + right: 0; + text-align: center; + background-color: rgba(0, 0, 0, 0.685); + color: white; +} + +.show-less-container { + padding-top: var(--default-gap); + margin-left: var(--padding-default); +} + +.comments-stats { + display: flex; + gap: var(--default-gap); + padding-bottom: var(--default-gap); +} +.sorting { + position: relative; +} +.comments-stats span { + left: 0; + position: absolute; + +} +.sort-by { + padding-left: var(--card-padding); + justify-content: center; + font-size: var(--description-font); + white-space: nowrap; +} + +.main-comment-section { + + width: var(--video-width); +} + +.add-comment { + display: flex; + gap: var(--padding-default); +} + +.add-container input { + width: var(--comment-section-width); + border: none; + border-bottom: var(--default-border); + outline: none; + margin-bottom: 5px; +} + +.add-container input:focus { + transition: all 300ms step-end; + border-bottom: 2px solid black; +} + + +.prompts { + width: var(--video-width); + display: grid; + grid-template-columns: 1fr 70px 120px; /*important*/ +} + +#Comment { + padding: 0.3rem; + width: fit-content; + background-color: var(--hover-color); + border-radius: var(--border-radius-2); +} + +#Cancel { + width: fit-content; + padding: 0.3rem; + border-radius: var(--border-radius-2); +} + +#Cancel:hover { + background-color: var(--hover-color); +} + +.prompts span { + width: fit-content; + padding: 0.3rem; + background-color: var(--hover-color); + border-radius: var(--border-radius-3); + cursor: pointer; +} +.prompts span:hover { + background-color: rgb(230, 230, 230); +} + + +.comments-container { + margin-top: var(--default-gap); +} + +.comment-owner-pfp img { + width: var(--pfp-width); + border-radius: var(--card-border-radius); +} + +.comment-block { + display: flex; + gap: var(--default-gap); + margin-top: var(--default-gap); +} + +.author-and-time { + display: flex; + flex-direction: row; + font-size: var(--small-font); + gap: var(--padding-default); +} + +.comment-text { + margin-top: var(--padding-default); + font-size: var(--description-font); +} + +.comment-actions { + margin-top: var(--default-gap); + display: flex; + gap: var(--actions-padding); +} + +.like-comment { + display: flex; +} + +.like-comment, .dislike-comment { + width: var(--small-logo-width); + height: var(--small-logo-width); + background-color: var(--color-white); + border: none; + cursor: pointer; +} + +.like-comment:hover, .dislike-comment:hover, .reply-comment:hover { + background-color: var(--hover-color); + border-radius: var(--border-radius-2); +} + +.comment-actions span, .reply-comment { + font-size: var(--description-font); +} + +.comment-replies-action { + margin-top: var(--padding-default); + display: flex; + gap: var(--default-gap); +} + +.channel-liked img { + width: var(--small-logo-width); + border-radius: var(--border-radius-3); +} + + + +.channel-replied img { + width: var(--small-logo-width); + border-radius: var(--card-border-radius); +} + +.replies-expand, .replies-text-expand { + border-radius: var(--border-radius-3); + text-align: center; + cursor: pointer; + transition: all 200ms ease; +} + +.replies-expand:hover, .replies-text-expand:hover { + background-color: var(--background-blue); +} + +.replied-comment { + margin-top: 1px; +} +.replied-comment img { + width: var(--medium-logo-width); +} + +.replied-comment .comment-text { + margin-top: 5px; +} + +.replied-comment .comment-actions { + margin-top: 5px; + margin-bottom: var(--padding-default); +} + +.channel-owner-reply { + padding: 1px 5px; + background-color: rgb(160, 160, 160); + color: var(--color-white); + border-radius: var(--border-radius-2); +} \ No newline at end of file diff --git a/1-exercise-solutions/Youtube-video-page-clone/styles/responsive.css b/1-exercise-solutions/Youtube-video-page-clone/styles/responsive.css new file mode 100644 index 0000000..174add5 --- /dev/null +++ b/1-exercise-solutions/Youtube-video-page-clone/styles/responsive.css @@ -0,0 +1,119 @@ +@media screen and (max-width: 1100px) { + .main-container { + grid-template-columns: 1fr; + width: 90%; + margin-left: var(--default-gap); + } + + .main-left-section{ + height: 100%; + } + + .main-right-section { + height: 100%; + } + + .main-comment-section { + height: 100%; + } + + .video-container { + display: flex; + justify-content: center; + } + .middle-section input { + flex: 1; + border: var(--default-border); + border-radius: var(--border-radius-3) 0px 0px var(--border-radius-3); + padding: var(--searchBar-small-padding); + border-right: var(--default-border); + } +} + +@media screen and (max-width: 768px) { + .main-container { + width: 530px; + padding-left: 10px; + padding-top: 1px; + } + .main-container video { + width: 530px; + height: 400px; + } + .main-left-section, .main-right-section, .main-comment-section { + width: 530px; + } + .add-container input { + width: 490px; + border: none; + border-bottom: var(--default-border); + outline: none; + margin-bottom: 5px; + } + .prompts { + width: 500px; + display: grid; + grid-template-columns: 1fr 70px 120px; /*important*/ + } +} + +/* +.middle-section { + + max-width: 100px; + flex: 1; +} + +.middle-section input { + flex: 1; + border: var(--default-border); + border-radius: var(--border-radius-3) 0px 0px var(--border-radius-3); + padding: var(--searchBar-small-padding); + width: 50px; + border-right: var(--default-border); +} +*/ +@media screen and (max-width: 580px) { + .middle-section input { + width: 40px; + } + .main-container { + width: 280px; + padding-left: 70px; + padding-top: 1px; + } + .main-container video { + width: 430px; + height: 300px; + } + .main-left-section, .main-right-section, .main-comment-section { + width: 430px; + } + .add-container input { + width: 400px; + border: none; + border-bottom: var(--default-border); + outline: none; + margin-bottom: 5px; + } + .prompts { + width: 430px; + display: grid; + grid-template-columns: 1fr 70px 120px; /*important*/ + } + .video-description { + width: 440px; + font-size: var(--small-font); + } + .channel { + gap: 0px; + } + + .video-share button { + display: none; + } + + .video-more-option button { + display: none; + } +} \ No newline at end of file diff --git a/1-exercise-solutions/Youtube-video-page-clone/styles/sidebar.css b/1-exercise-solutions/Youtube-video-page-clone/styles/sidebar.css new file mode 100644 index 0000000..b41ae37 --- /dev/null +++ b/1-exercise-solutions/Youtube-video-page-clone/styles/sidebar.css @@ -0,0 +1,114 @@ +:root { + --color-white: #ffffff; + --color-black: #303030; + --shadow-color: rgba(132, 139, 200, 0.18); + + --card-border-radius: 2rem; + --border-radius-1: 0.4rem; + --border-radius-2: 0.8rem; + --border-radius-3: 1.2rem; + --default-border: 1px solid rgb(184, 184, 184); + --default-button-border-radius: 0.5rem; + + --card-padding: 1.8rem; + --padding-1: 1.2rem; + --default-gap: 1.25rem; + --padding-0: 1rem; + --padding-default: 0.7rem; + --sidebar-elements-gap: 0.5rem; + --padding-low: 0.3rem; + --button-padding: 0.24rem 0.8rem; + + + --logo-width: 100px; + --small-logo-width: 100px; + + --box-shadow: 0 2rem 3rem var(--shadow-color); + + --default-button: none; + + --small-font: 12px; + +} + +.aside-container { + display: none; + position: fixed; + z-index: 1; + width: 14rem; + border-right: var(--default-border); + height: 100%; + overflow: auto; + background-color: var(--color-white); + z-index: 4; +} + +.overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.425); + z-index: 3; +} + +.top-section { + align-items: center; + display: flex; + gap: var(--default-gap); + margin-left: var(--default-gap); + padding-bottom: var(--padding-default); + padding-top: 14px; +} + + + +.sidebar-content { + margin-top: 4px; + display: flex; + flex-direction: column; + width: 90%; +} + +.elements { + border-radius: var(--border-radius-1); + display: flex; + gap: var(--default-gap); + margin-left: var(--padding-0); + margin-bottom: var(--sidebar-elements-gap); + padding: var(--padding-low); + cursor: pointer; + transition: background-color 300ms ease; + padding-bottom: 1.5px; +} + +.elements:hover { + background-color: rgba(170, 170, 170, 0.3); +} + +.set { + border-bottom: var(--default-border); +} + +.set-title { + margin-left: var(--default-gap); +} + +.set-title .elements { + margin-left: -5px; +} + +.bottom-section { + margin-top: var(--padding-default); + width: 90%; + font-size: var(--small-font); + font-weight: 500; + display: flex; + flex-direction: column; +} + +.bottom-section div { + margin-left: var(--default-gap); + margin-bottom: var(--sidebar-elements-gap); +} \ No newline at end of file diff --git a/1-exercise-solutions/Youtube-video-page-clone/video2.mp4 b/1-exercise-solutions/Youtube-video-page-clone/video2.mp4 new file mode 100644 index 0000000..abf6fd0 Binary files /dev/null and b/1-exercise-solutions/Youtube-video-page-clone/video2.mp4 differ diff --git a/1-exercise-solutions/instagram-project/icons/Instagram_Stories_ring.svg b/1-exercise-solutions/instagram-project/icons/Instagram_Stories_ring.svg new file mode 100644 index 0000000..669e30b --- /dev/null +++ b/1-exercise-solutions/instagram-project/icons/Instagram_Stories_ring.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/1-exercise-solutions/instagram-project/icons/Thumbs.db b/1-exercise-solutions/instagram-project/icons/Thumbs.db new file mode 100644 index 0000000..8db7b98 Binary files /dev/null and b/1-exercise-solutions/instagram-project/icons/Thumbs.db differ diff --git a/1-exercise-solutions/instagram-project/icons/chat.png b/1-exercise-solutions/instagram-project/icons/chat.png new file mode 100644 index 0000000..5057532 Binary files /dev/null and b/1-exercise-solutions/instagram-project/icons/chat.png differ diff --git a/1-exercise-solutions/instagram-project/icons/compass.png b/1-exercise-solutions/instagram-project/icons/compass.png new file mode 100644 index 0000000..011a964 Binary files /dev/null and b/1-exercise-solutions/instagram-project/icons/compass.png differ diff --git a/1-exercise-solutions/instagram-project/icons/heart.png b/1-exercise-solutions/instagram-project/icons/heart.png new file mode 100644 index 0000000..bbf0d9f Binary files /dev/null and b/1-exercise-solutions/instagram-project/icons/heart.png differ diff --git a/1-exercise-solutions/instagram-project/icons/home.png b/1-exercise-solutions/instagram-project/icons/home.png new file mode 100644 index 0000000..88a94be Binary files /dev/null and b/1-exercise-solutions/instagram-project/icons/home.png differ diff --git a/1-exercise-solutions/instagram-project/icons/icons8-ellipsis-90.png b/1-exercise-solutions/instagram-project/icons/icons8-ellipsis-90.png new file mode 100644 index 0000000..0f24db1 Binary files /dev/null and b/1-exercise-solutions/instagram-project/icons/icons8-ellipsis-90.png differ diff --git a/1-exercise-solutions/instagram-project/icons/illo-confirm-refresh-light.png b/1-exercise-solutions/instagram-project/icons/illo-confirm-refresh-light.png new file mode 100644 index 0000000..ede73d2 Binary files /dev/null and b/1-exercise-solutions/instagram-project/icons/illo-confirm-refresh-light.png differ diff --git a/1-exercise-solutions/instagram-project/icons/instagram-text-logo.png b/1-exercise-solutions/instagram-project/icons/instagram-text-logo.png new file mode 100644 index 0000000..8dbd66a Binary files /dev/null and b/1-exercise-solutions/instagram-project/icons/instagram-text-logo.png differ diff --git a/1-exercise-solutions/instagram-project/icons/instagram.png b/1-exercise-solutions/instagram-project/icons/instagram.png new file mode 100644 index 0000000..105b6bf Binary files /dev/null and b/1-exercise-solutions/instagram-project/icons/instagram.png differ diff --git a/1-exercise-solutions/instagram-project/icons/menu.png b/1-exercise-solutions/instagram-project/icons/menu.png new file mode 100644 index 0000000..c8f355e Binary files /dev/null and b/1-exercise-solutions/instagram-project/icons/menu.png differ diff --git a/1-exercise-solutions/instagram-project/icons/noun-search-3184147.svg b/1-exercise-solutions/instagram-project/icons/noun-search-3184147.svg new file mode 100644 index 0000000..fd6f1d9 --- /dev/null +++ b/1-exercise-solutions/instagram-project/icons/noun-search-3184147.svg @@ -0,0 +1,4 @@ + + + + diff --git a/1-exercise-solutions/instagram-project/icons/save-instagram.png b/1-exercise-solutions/instagram-project/icons/save-instagram.png new file mode 100644 index 0000000..059ad8b Binary files /dev/null and b/1-exercise-solutions/instagram-project/icons/save-instagram.png differ diff --git a/1-exercise-solutions/instagram-project/icons/search-interface-symbol.png b/1-exercise-solutions/instagram-project/icons/search-interface-symbol.png new file mode 100644 index 0000000..9075295 Binary files /dev/null and b/1-exercise-solutions/instagram-project/icons/search-interface-symbol.png differ diff --git a/1-exercise-solutions/instagram-project/icons/send.png b/1-exercise-solutions/instagram-project/icons/send.png new file mode 100644 index 0000000..13c7bb2 Binary files /dev/null and b/1-exercise-solutions/instagram-project/icons/send.png differ diff --git a/1-exercise-solutions/instagram-project/icons/svgexport-9.svg b/1-exercise-solutions/instagram-project/icons/svgexport-9.svg new file mode 100644 index 0000000..04a4bbb --- /dev/null +++ b/1-exercise-solutions/instagram-project/icons/svgexport-9.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/1-exercise-solutions/instagram-project/icons/tab.png b/1-exercise-solutions/instagram-project/icons/tab.png new file mode 100644 index 0000000..048f84b Binary files /dev/null and b/1-exercise-solutions/instagram-project/icons/tab.png differ diff --git a/1-exercise-solutions/instagram-project/icons/user.png b/1-exercise-solutions/instagram-project/icons/user.png new file mode 100644 index 0000000..8cb805a Binary files /dev/null and b/1-exercise-solutions/instagram-project/icons/user.png differ diff --git a/1-exercise-solutions/instagram-project/icons/video.png b/1-exercise-solutions/instagram-project/icons/video.png new file mode 100644 index 0000000..5e6a4cc Binary files /dev/null and b/1-exercise-solutions/instagram-project/icons/video.png differ diff --git a/1-exercise-solutions/instagram-project/images/Thumbs.db b/1-exercise-solutions/instagram-project/images/Thumbs.db new file mode 100644 index 0000000..a65ffa3 Binary files /dev/null and b/1-exercise-solutions/instagram-project/images/Thumbs.db differ diff --git a/1-exercise-solutions/instagram-project/images/banner-index.jpg b/1-exercise-solutions/instagram-project/images/banner-index.jpg new file mode 100644 index 0000000..2b5ea60 Binary files /dev/null and b/1-exercise-solutions/instagram-project/images/banner-index.jpg differ diff --git a/1-exercise-solutions/instagram-project/images/dog2.jpg b/1-exercise-solutions/instagram-project/images/dog2.jpg new file mode 100644 index 0000000..7a0ffe8 Binary files /dev/null and b/1-exercise-solutions/instagram-project/images/dog2.jpg differ diff --git a/1-exercise-solutions/instagram-project/images/profile-pic.jpg b/1-exercise-solutions/instagram-project/images/profile-pic.jpg new file mode 100644 index 0000000..3580ac1 Binary files /dev/null and b/1-exercise-solutions/instagram-project/images/profile-pic.jpg differ diff --git a/1-exercise-solutions/instagram-project/index.html b/1-exercise-solutions/instagram-project/index.html new file mode 100644 index 0000000..5340735 --- /dev/null +++ b/1-exercise-solutions/instagram-project/index.html @@ -0,0 +1,509 @@ + + + Instagram main page clone + + + + + + + + + + + +
+ + +
+
+ +
+
+ +
+
+ +
+ + + +
+
+
+
+ + +
supersimpl
+
+
+ + +
supersimpl
+
+
+ + +
supersimpl
+
+
+ + +
supersimpl
+
+
+ + +
supersimpl
+
+
+ + +
supersimpl
+
+
+ + +
supersimpl
+
+
+ + + > +
supersimpl
+
+
+ +
+ +
+ +
+ +
+ + + +
Original audio
+
+ +
+ + +
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ +
+ +
+ +
+ + + +
+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Possimus numquam, magni laborum voluptas odio molestiae hic illum... + more +
+ + + + + +
+ +
+
+ +
+ +
+ + + +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ +
+ +
+ +
+ + + + +
+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Possimus numquam, magni laborum voluptas odio molestiae hic illum... + more +
+ + + + + +
+ +
+ +
+
+ +
You're all caught up
+
You've seen all new posts from the past 3 days.
+ View older posts +
+
+ +
+ +
+ +
+ + + +
Original audio
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ +
+ +
+ +
+ + + +
+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Possimus numquam, magni laborum voluptas odio molestiae hic illum... + more +
+ + + + + +
+ +
+
+ +
+ +
+ + + +
+ +
+ +
+ +
+ +
+ +
+ +
+
+ +
+ + + +
+ +
+ +
+ +
+ + + + +
+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Possimus numquam, magni laborum voluptas odio molestiae hic illum... + more +
+ + + + + +
+ +
+ +
+
+ + + + + + + \ No newline at end of file diff --git a/1-exercise-solutions/instagram-project/styles/general.css b/1-exercise-solutions/instagram-project/styles/general.css new file mode 100644 index 0000000..14d823f --- /dev/null +++ b/1-exercise-solutions/instagram-project/styles/general.css @@ -0,0 +1,6 @@ +@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300&display=swap'); +body { + padding-bottom: 2000px; + margin: 0; + font-family: Roboto; +} \ No newline at end of file diff --git a/1-exercise-solutions/instagram-project/styles/middle-page.css b/1-exercise-solutions/instagram-project/styles/middle-page.css new file mode 100644 index 0000000..6e7e3a6 --- /dev/null +++ b/1-exercise-solutions/instagram-project/styles/middle-page.css @@ -0,0 +1,214 @@ +.middle-page { + position: relative; + padding-left: 231px; +} +.stories { + padding-top: 45px; + padding-left: 0px; + width: 720px; + height: 120px; + display: flex; + justify-content: center; +} +.story { + padding: 0px 10px 0px 10px; + position: relative; + width: 60px; + display: flex; + align-items: center; + flex-direction: column; +} +.story-ring { + width: 60px; +} +.profile-picture { + position: absolute; + width: 53px; + top: 4px; + border-radius: 25px; +} +.profile-name { + padding-top: 6px; + font-size: 13px; +} +/* Again, since the elements have the same class name, i put 'style="position: relative;"' only inside the last HTML element that includes the icon, aka 'more stories' */ +.more-stories { + position: absolute; + background-color: rgba(255, 255, 255, 0.89); + color: rgba(0, 0, 0, 0.336); + font-family: 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif; + top: 20px; + right: 25px; + padding: 1px 4.75px; + border-radius: 10px; +} + +.spacing { + margin-top: 1px; + margin-bottom: 1px; +} + +.posts-container { + width: 490px; + margin-left: 115px; + position: relative; + border-bottom: 1px solid rgb(214, 212, 212); + padding-bottom: 15px; + padding-top: 20px; +} +.post-header { + width: 490px; + height: 45px; + display: flex; + justify-content: space-between; +} +.left-section { + position: relative; + top: 3px; + left: 3px; + display: flex; + flex-direction: column; +} +.post-ring { + position: absolute; + width: 38px; + border-radius: 32px; +} +.posts-profile-picture { + position: absolute; + width: 34px; + border-radius: 32px; + top: 2.4px; + left: 2.1px; +} +.post-author { + margin-left: 45px; + /* + display: grid; + grid-template-columns: 120px 150px; */ +} +#single-post-author { + margin-top: 10px; +} +.optional-tag { + margin-left: 45px; +} +.right-section img { + width: 16px; + position: absolute; + top: 34px; + right: 8px; +} +#favourite { + position: absolute; + right: 40px; +} +.post-content { + margin-top: 7px; + width: 490px; +} + +.post-image img { + border-radius: 5px; + width: 490px; + object-fit: cover; + height: 500px; +} + +.post-actions-icons { + padding-top: 6px; + width: 490px; +} + +.post-actions-icons { + display: flex; + justify-content: space-between; +} + +.post-actions-icons img { + width: 20px; +} + +.likes-summary { + padding-top: 10px; + display: flex; + width: 235px; +} + +.likes-summary div { + font-size: 12px; +} + +.likes-summary img { + width: 17px; + border-radius: 10px; + margin-right: 10px; +} + +.post-description { + display: flex; + flex-direction: column; + margin-top: 11px; +} + +.post-description a { + border: none; + width: 45px; + background-color: none; + text-decoration: none; + color: rgb(180, 180, 180); +} + +.view-comments, .add-comment { + padding-top: 11px; +} +.view-comments a { + text-decoration: none; + color: rgb(180, 180, 180); + font-size: 14px; +} + +.add-comment { + color: rgb(180, 180, 180); + font-size: 14px; + display: flex; + justify-content: space-between; +} +.add-comment a { + text-decoration: none; + color: rgb(180, 180, 180); + font-size: 14px; +} +.add-comment img { + width: 15px; +} + +.all-caught-up-container { + padding-bottom: 50px; + margin-top: 40px; + width: 490px; + margin-left: 115px; + border-bottom: 1px solid rgb(214, 212, 212); +} +.all-caught-up { + line-height: 25px; + text-align: center; + align-items: center; + display: flex; + flex-direction: column; +} +.all-caught-up img { + width: 100px; + margin-bottom: 15px; +} +/* all-caught-up */ #headline { + font-size: 19px; +} +/* all-caught-up */ #text { + font-size: 15px; + color: grey; +} +.all-caught-up a { + color: rgb(0, 149, 246); + text-decoration: none; +} diff --git a/1-exercise-solutions/instagram-project/styles/mobile-footer-menu.css b/1-exercise-solutions/instagram-project/styles/mobile-footer-menu.css new file mode 100644 index 0000000..ae9696b --- /dev/null +++ b/1-exercise-solutions/instagram-project/styles/mobile-footer-menu.css @@ -0,0 +1,25 @@ +.footer { + border-top: 1px solid rgb(214, 212, 212); + background-color: white; + z-index: 400; + height: 50px; + position: fixed; + bottom: 0; + right: 0; + left: 0; + display: flex; + justify-content: space-between; + align-items: center; +} +.footer-images { + margin-right: 20px; + margin-left: 20px; +} +.footer-images img { + width: 25px; +} +@media (min-width: 805px) { + .footer { + display: none; + } +} \ No newline at end of file diff --git a/1-exercise-solutions/instagram-project/styles/mobile-header-menu.css b/1-exercise-solutions/instagram-project/styles/mobile-header-menu.css new file mode 100644 index 0000000..128b380 --- /dev/null +++ b/1-exercise-solutions/instagram-project/styles/mobile-header-menu.css @@ -0,0 +1,39 @@ + +.header { + z-index: 200; + width: 100%; + background-color: white; + top: 0; + right: 0; + left: 0; + position: fixed; + height: 60px; + display: flex; + justify-content: space-between; + align-items: center; + border-bottom: 1px solid rgb(214, 212, 212);; +} +.instagram-mobile-logo img { + width: 110px; +} +.icon img { + width: 27px; + margin-right: 15px; +} +.section-right { + display: flex; + align-items: center; +} + +.input input { + margin-right: 15px; + border-radius: 5px; + background-color: rgb(239, 239, 239); + border: none; + padding: 10px 85px 10px 10px; +} +@media (min-width: 805px) { + .header { + display: none; + } +} diff --git a/1-exercise-solutions/instagram-project/styles/responsive.css b/1-exercise-solutions/instagram-project/styles/responsive.css new file mode 100644 index 0000000..43e747e --- /dev/null +++ b/1-exercise-solutions/instagram-project/styles/responsive.css @@ -0,0 +1,163 @@ + +@media (min-width: 1277px) { + .instagram-logo1 { + display: none; + } + +} + +@media (max-width: 1160px) { + .middle-page { + position: relative; + margin-left: 130px; + } + .sidebar2 { + display: none; + } + +} + +@media (max-width: 920px) { + .middle-page { + margin-left: 30px; + } + +} + +@media (max-width: 740px) { + .middle-page { + position: relative; + margin-left: 10px; + } + .sidebar1 { + display: none; + } +} + +@media (max-width: 1304px) { + .middle-page { + padding-left: 211px; + } +} + +@media (max-width: 1277px) { + .sidebar1 { + width: 70px; + } + .nav-text { + display: none; + } + .instagram-logo2 { + display: none; + } + + /* middle page responsivness */ + + .middle-page { + position: relative; + padding-left: 60px; + } +} + +@media (max-width: 805px) { + .middle-page { + position: relative; + padding-left: 1px; + margin-top: 50px; + } + .sidebar1 { + display: none; + } +} +@media (max-width: 703px) { + .posts-container { + margin-left: 50px; + } + .stories { + width: 580px; + } + .story { + padding: 0px 5px 0px 5px; + position: relative; + width: 60px; + display: flex; + align-items: center; + flex-direction: column; + } + .story-ring { + width: 50px; + } + .profile-picture { + position: absolute; + width: 43px; + top: 4px; + border-radius: 25px; + } + .profile-name { + padding-top: 6px; + font-size: 13px; + } +} +@media (max-width: 600px) { + .posts-container { + margin-left: 5px; + padding-top: 10px; + } + .stories { + width: 460px; + height: 90px; + } + .story { + padding: 0px 5px 0px 5px; + position: relative; + width: 45px; + display: flex; + align-items: center; + flex-direction: column; + } + .story-ring { + width: 35px; + } + .profile-picture { + position: absolute; + width: 28px; + top: 4px; + border-radius: 25px; + } + .profile-name { + padding-top: 6px; + font-size: 9.5px; + } + .more-stories { + position: absolute; + background-color: rgba(255, 255, 255, 0.89); + color: rgba(0, 0, 0, 0.336); + font-family: 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif; + top: 9px; + right: 13px; + font-size: 12.5px; + padding: 1px 4.75px; + border-radius: 10px; + } + .posts-container { + width: 450px; + } + .post-image img { + border-radius: 5px; + width: 450px; + object-fit: cover; + height: 500px; + } + .all-caught-up-container { + padding-bottom: 50px; + margin-top: 40px; + width: 280px; + border-bottom: 1px solid rgb(214, 212, 212); + margin-bottom: 20px; + } + .right-section img { + top: 14px; + right: 8px; + } +} + diff --git a/1-exercise-solutions/instagram-project/styles/sidebar1.css b/1-exercise-solutions/instagram-project/styles/sidebar1.css new file mode 100644 index 0000000..b3d39ac --- /dev/null +++ b/1-exercise-solutions/instagram-project/styles/sidebar1.css @@ -0,0 +1,58 @@ +.sidebar1 { + background-color: white; + border-right: 1px solid rgb(224, 216, 216); + width: 230px; + position: fixed; + display: flex; + top: 0; + bottom: 0; + flex-direction: column; +} + +.instagram-logo1 img { + width: 35px; + margin-left: 20px; + padding-top: 10px; + padding-bottom: 10px; +} + +.instagram-logo2 img { + width: 100px; + margin-left: 25px; +} + +.nav-element { + display: flex; +} + +.nav-element img { + margin-left: 25px; + width: 27px; + padding-bottom: 18.5px; +} + +.nav-text { + margin-left: 15px; + margin-top: 5px; + font-family: Arial, Helvetica, sans-serif; +} + +/* since the elements have the same class name, i put 'style="position: relative;"' only inside the elements with a alert, aka the red spans */ +.messages-count { + position: absolute; + top: -3px; + left: 44px; + padding: 1px 5px; + color: white; + font-size: 12px; + border-radius: 20px; + background-color: rgb(228, 60, 60); +} +.notificationst-alert { + width: 8px; + height: 8px; + border-radius: 4px; + background-color: rgb(228, 60, 60); + position: absolute; + left: 46px; +} \ No newline at end of file diff --git a/1-exercise-solutions/instagram-project/styles/sidebar2.css b/1-exercise-solutions/instagram-project/styles/sidebar2.css new file mode 100644 index 0000000..682a740 --- /dev/null +++ b/1-exercise-solutions/instagram-project/styles/sidebar2.css @@ -0,0 +1,111 @@ +.sidebar2 { + position: absolute; + right: 0; + top: 0; + right: 15px; + margin-right: 20px; + width: 340px; +} +.first-sidebar2 { + padding-top: 50px; +} +.account-indicator { + display: grid; + grid-template-columns: 80px 1fr 56px; + justify-content: space-between; +} +.account-indicator img { + margin-left: 12px; + width: 55px; + border-radius: 40px; + border: 1px solid rgb(179, 169, 169); +} +.account-info, .switch { + font-size: 16px; + display: flex; + flex-direction: column; + justify-content: center; +} +.account-info { + line-height: 20px; +} +.switch a { + font-size: 12px; + text-decoration: none; + color: rgb(49, 142, 218); +} + +.suggested-for-you { + margin-top: 16px; + margin-bottom: 1px; + display: grid; + grid-template-columns: 150px 56px; + justify-content: space-between; +} + +.sfy-text { /* .suggested-for-you text */ + margin-left: 12px; +} + +.sfy-see { /* .suggested-for-you see all link */ + font-size: 12px; + text-decoration: none; +} +.sfy-see a { + color: black; + font-size: 12px; + text-decoration: none; +} + + +.suggestions img { + width: 35px; + border-radius: 25px; + margin-left: 12px; + border-radius: 40px; + border: 1px solid rgb(179, 169, 169); +} + +.suggestions { + padding-top: 20px; + display: grid; + grid-template-columns: 65px 1fr 56px; + justify-content: space-between; + align-items: center; +} + +.information { + color: rgb(145, 145, 145); + font-size: 12px; +} + +.follow a { + font-size: 12px; + text-decoration: none; + color: rgb(49, 142, 218); +} + +.second-sidebar2 { + padding-top: 30px; + display: grid; + grid-template-rows: 40px 50px; + position: relative; + font-size: 14px; +} +.links-section, .copyright { + width: 360px; + word-wrap: break-word; + font-size: 12px; + color: rgb(185, 180, 180); +} +.links-section a { + text-decoration: none; + font-size: 12px; + color: rgb(185, 180, 180); +} +.links-section a:hover { + text-decoration: underline; +} +.copyright { + padding-top: 12px; +} \ No newline at end of file diff --git a/1-exercise-solutions/twitter-default-page-clone/icons/Thumbs.db b/1-exercise-solutions/twitter-default-page-clone/icons/Thumbs.db new file mode 100644 index 0000000..2d6c6ee Binary files /dev/null and b/1-exercise-solutions/twitter-default-page-clone/icons/Thumbs.db differ diff --git a/1-exercise-solutions/twitter-default-page-clone/icons/icons8-apple-logo.svg b/1-exercise-solutions/twitter-default-page-clone/icons/icons8-apple-logo.svg new file mode 100644 index 0000000..4a4394f --- /dev/null +++ b/1-exercise-solutions/twitter-default-page-clone/icons/icons8-apple-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/1-exercise-solutions/twitter-default-page-clone/icons/icons8-ellipsis-90.png b/1-exercise-solutions/twitter-default-page-clone/icons/icons8-ellipsis-90.png new file mode 100644 index 0000000..0f24db1 Binary files /dev/null and b/1-exercise-solutions/twitter-default-page-clone/icons/icons8-ellipsis-90.png differ diff --git a/1-exercise-solutions/twitter-default-page-clone/icons/icons8-google.svg b/1-exercise-solutions/twitter-default-page-clone/icons/icons8-google.svg new file mode 100644 index 0000000..6875bd5 --- /dev/null +++ b/1-exercise-solutions/twitter-default-page-clone/icons/icons8-google.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/1-exercise-solutions/twitter-default-page-clone/icons/icons8-hashtag-100.png b/1-exercise-solutions/twitter-default-page-clone/icons/icons8-hashtag-100.png new file mode 100644 index 0000000..23cee32 Binary files /dev/null and b/1-exercise-solutions/twitter-default-page-clone/icons/icons8-hashtag-100.png differ diff --git a/1-exercise-solutions/twitter-default-page-clone/icons/icons8-settings-128 (1).png b/1-exercise-solutions/twitter-default-page-clone/icons/icons8-settings-128 (1).png new file mode 100644 index 0000000..d33eb96 Binary files /dev/null and b/1-exercise-solutions/twitter-default-page-clone/icons/icons8-settings-128 (1).png differ diff --git a/1-exercise-solutions/twitter-default-page-clone/icons/icons8-settings.svg b/1-exercise-solutions/twitter-default-page-clone/icons/icons8-settings.svg new file mode 100644 index 0000000..e30e19e --- /dev/null +++ b/1-exercise-solutions/twitter-default-page-clone/icons/icons8-settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/1-exercise-solutions/twitter-default-page-clone/icons/icons8-twitter-240.svg b/1-exercise-solutions/twitter-default-page-clone/icons/icons8-twitter-240.svg new file mode 100644 index 0000000..cb35d4c --- /dev/null +++ b/1-exercise-solutions/twitter-default-page-clone/icons/icons8-twitter-240.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/1-exercise-solutions/twitter-default-page-clone/icons/noun-comment-4598095.svg b/1-exercise-solutions/twitter-default-page-clone/icons/noun-comment-4598095.svg new file mode 100644 index 0000000..810b0a6 --- /dev/null +++ b/1-exercise-solutions/twitter-default-page-clone/icons/noun-comment-4598095.svg @@ -0,0 +1,4 @@ + + + + diff --git a/1-exercise-solutions/twitter-default-page-clone/icons/noun-heart-5684728.svg b/1-exercise-solutions/twitter-default-page-clone/icons/noun-heart-5684728.svg new file mode 100644 index 0000000..d3412c7 --- /dev/null +++ b/1-exercise-solutions/twitter-default-page-clone/icons/noun-heart-5684728.svg @@ -0,0 +1,4 @@ + + + + diff --git a/1-exercise-solutions/twitter-default-page-clone/icons/noun-retweet-1158617.svg b/1-exercise-solutions/twitter-default-page-clone/icons/noun-retweet-1158617.svg new file mode 100644 index 0000000..d5f1b88 --- /dev/null +++ b/1-exercise-solutions/twitter-default-page-clone/icons/noun-retweet-1158617.svg @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/1-exercise-solutions/twitter-default-page-clone/icons/noun-stats-3836488.svg b/1-exercise-solutions/twitter-default-page-clone/icons/noun-stats-3836488.svg new file mode 100644 index 0000000..fc3ed65 --- /dev/null +++ b/1-exercise-solutions/twitter-default-page-clone/icons/noun-stats-3836488.svg @@ -0,0 +1,4 @@ + + + + diff --git a/1-exercise-solutions/twitter-default-page-clone/icons/noun-upload-292145.svg b/1-exercise-solutions/twitter-default-page-clone/icons/noun-upload-292145.svg new file mode 100644 index 0000000..8d18d10 --- /dev/null +++ b/1-exercise-solutions/twitter-default-page-clone/icons/noun-upload-292145.svg @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/1-exercise-solutions/twitter-default-page-clone/index.html b/1-exercise-solutions/twitter-default-page-clone/index.html new file mode 100644 index 0000000..17aa89f --- /dev/null +++ b/1-exercise-solutions/twitter-default-page-clone/index.html @@ -0,0 +1,358 @@ + + + Twitter explore page clone + + + + + + + + + + + + + +
+ +
+
+
Explore
+
+ +
+
+ +
+ + +
+
+
+ +
+
+
+
+ supersimple.dev + @supersimple.dev · + Sep 14, 2021 +
+
+ +
+
+
+ If you're unable to afford a good laptop for coding, consider a chromebook. I was experimenting with web development on a chromebook today (this one's $180 USD after tax) and it actually runs very smoothly. + #CodeNewbie #freeCodeCamp #LearnToCode + +
+ +
+
+
+
+
+ +
+ +
+
+ +
+ + +
+ +
+
+ 2 +
+ + + +
+ +
+
+ +
+ +
+
+
+ +
+
+
+ +
+
+
+
+ supersimple.dev + @supersimple.dev · + Sep 14, 2021 +
+
+ +
+
+
+ Working on a JavaScript video course now +
+ +
+
+
+
+
+
+ +
+
+ 54 +
+
+ +
+
+ 10 +
+ + +
+ +
+
+ +
+ + +
+
+ +
+
+
+ +
+
+
+
+ Fabrizio Romano + ✓ + @FabrizioRomano + · 19h +
+
+ +
+
+
+ Napoli are Serie A champions after 33 years! +
+ It’s the third Serie A title in their history. +
+ It’s also the first one after the legendary Diego Maradona era. +
+ Congrats, Napoli! +
+ +
+
+
+
+
+
+ +
+
+ 990 +
+
+ +
+
+ 19K +
+ + +
+ +
+
+ 5M +
+ + +
+
+
+
+
+ +
+
+
+
+ Erling Haaland ✓ + @ErlingHaaland · 16h +
+
+ +
+
+
+ Friend: how many league goals have you scored?
+ Me: +
+ +
+
+
+
+
+
+ +
+
+ 4,707 +
+
+ +
+
+ 14K +
+ + +
+ +
+
+ 21.6M +
+ + +
+
+
+
+ + + +
+
+
+
+ Don't miss what's happening. +
+
+ People on Twitter are the first to know. +
+
+
+ + +
+
+
+ + \ No newline at end of file diff --git a/1-exercise-solutions/twitter-default-page-clone/photos/3ifAqala_400x400.jpg b/1-exercise-solutions/twitter-default-page-clone/photos/3ifAqala_400x400.jpg new file mode 100644 index 0000000..e321870 Binary files /dev/null and b/1-exercise-solutions/twitter-default-page-clone/photos/3ifAqala_400x400.jpg differ diff --git a/1-exercise-solutions/twitter-default-page-clone/photos/FvT7v8mWcAQsLKm.jpg b/1-exercise-solutions/twitter-default-page-clone/photos/FvT7v8mWcAQsLKm.jpg new file mode 100644 index 0000000..a5b490e Binary files /dev/null and b/1-exercise-solutions/twitter-default-page-clone/photos/FvT7v8mWcAQsLKm.jpg differ diff --git a/1-exercise-solutions/twitter-default-page-clone/photos/Thumbs.db b/1-exercise-solutions/twitter-default-page-clone/photos/Thumbs.db new file mode 100644 index 0000000..8f1c291 Binary files /dev/null and b/1-exercise-solutions/twitter-default-page-clone/photos/Thumbs.db differ diff --git a/1-exercise-solutions/twitter-default-page-clone/photos/banner-index.jpg b/1-exercise-solutions/twitter-default-page-clone/photos/banner-index.jpg new file mode 100644 index 0000000..2b5ea60 Binary files /dev/null and b/1-exercise-solutions/twitter-default-page-clone/photos/banner-index.jpg differ diff --git a/1-exercise-solutions/twitter-default-page-clone/photos/dog1.jpg b/1-exercise-solutions/twitter-default-page-clone/photos/dog1.jpg new file mode 100644 index 0000000..9fcb150 Binary files /dev/null and b/1-exercise-solutions/twitter-default-page-clone/photos/dog1.jpg differ diff --git a/1-exercise-solutions/twitter-default-page-clone/photos/dog2.jpg b/1-exercise-solutions/twitter-default-page-clone/photos/dog2.jpg new file mode 100644 index 0000000..7a0ffe8 Binary files /dev/null and b/1-exercise-solutions/twitter-default-page-clone/photos/dog2.jpg differ diff --git a/1-exercise-solutions/twitter-default-page-clone/photos/hPVprxgb_400x400.jpg b/1-exercise-solutions/twitter-default-page-clone/photos/hPVprxgb_400x400.jpg new file mode 100644 index 0000000..49c380d Binary files /dev/null and b/1-exercise-solutions/twitter-default-page-clone/photos/hPVprxgb_400x400.jpg differ diff --git a/1-exercise-solutions/twitter-default-page-clone/photos/m0yzCdOe_400x400.jpg b/1-exercise-solutions/twitter-default-page-clone/photos/m0yzCdOe_400x400.jpg new file mode 100644 index 0000000..5b9b708 Binary files /dev/null and b/1-exercise-solutions/twitter-default-page-clone/photos/m0yzCdOe_400x400.jpg differ diff --git a/1-exercise-solutions/twitter-default-page-clone/photos/photo_2023-05-05_20-19-14.jpg b/1-exercise-solutions/twitter-default-page-clone/photos/photo_2023-05-05_20-19-14.jpg new file mode 100644 index 0000000..787b760 Binary files /dev/null and b/1-exercise-solutions/twitter-default-page-clone/photos/photo_2023-05-05_20-19-14.jpg differ diff --git a/1-exercise-solutions/twitter-default-page-clone/photos/profile-pic.jpg b/1-exercise-solutions/twitter-default-page-clone/photos/profile-pic.jpg new file mode 100644 index 0000000..3580ac1 Binary files /dev/null and b/1-exercise-solutions/twitter-default-page-clone/photos/profile-pic.jpg differ diff --git a/1-exercise-solutions/twitter-default-page-clone/photos/tweetpic.jpg b/1-exercise-solutions/twitter-default-page-clone/photos/tweetpic.jpg new file mode 100644 index 0000000..113b3da Binary files /dev/null and b/1-exercise-solutions/twitter-default-page-clone/photos/tweetpic.jpg differ diff --git a/1-exercise-solutions/twitter-default-page-clone/styles/general.css b/1-exercise-solutions/twitter-default-page-clone/styles/general.css new file mode 100644 index 0000000..3b73764 --- /dev/null +++ b/1-exercise-solutions/twitter-default-page-clone/styles/general.css @@ -0,0 +1,7 @@ +@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300&display=swap'); +@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300&display=swap'); +body { + margin: 0; + padding-bottom: 2000px; /* for testing the position:fixed; values */ + margin-left: 100px; +} \ No newline at end of file diff --git a/1-exercise-solutions/twitter-default-page-clone/styles/main-content.css b/1-exercise-solutions/twitter-default-page-clone/styles/main-content.css new file mode 100644 index 0000000..cad6a55 --- /dev/null +++ b/1-exercise-solutions/twitter-default-page-clone/styles/main-content.css @@ -0,0 +1,136 @@ +/* main page code */ +.tweet-link { + text-decoration: none; +} +.main-page { + border-right: 1px solid rgb(241, 236, 236); + width: 600px; + bottom: 0; + top: 0; + position: relative; + height: auto; +} +.explore { + font-family: Arial, Helvetica, sans-serif; + font-weight: 600; + font-size: 20px; + display: flex; + justify-content: space-between; + height: 45px; + background-color: rgba(255, 255, 255, 0.952); + position: fixed; + width: 600px; +} + +.explore div { + padding: 15px 0px 0px 20px; +} + +.explore img { + padding-right: 15px; +} +.main-page-settings-icon { + width: 23px; +} + +.spacing { + padding-top: 70px; +} +.tweet-container { + border-bottom: 1px solid rgb(241, 236, 236); + display: grid; + grid-row: 1fr; + transition: background-color 0.5s; +} +.tweet-container:hover { + background-color: rgba(211, 211, 211, 0.39); + cursor: pointer; +} +.tweet { + margin-top: 5px; + display: flex; +} +.profile-picture img { + width: 45px; + margin-left: 15px; + border-radius: 25px; + margin-top: 5px; +} +.profile-info { + padding-left: 15px; + display: flex; + flex-direction: column; +} +.name-id-time { + width: 509px; + justify-content: space-between; + display: flex; +} +.name-id-time img { + margin-right: 3px; + width: 15px; +} +.profile-name { + font-family: Arial, Helvetica, sans-serif; + font-size: 17px; + font-weight: 600; +} +.id-and-time { + margin-left: 2px; + font-size: 15px; + font-family: Arial, Helvetica, sans-serif; + color: rgb(129, 123, 123); +} +.tweet-text { + width: 90%; + margin-top: 5px; + font-family: Arial, Helvetica, sans-serif; + font-size: 17px; +} +.tweet-photo { + margin-top: 20px; + display: flex; +} +.tweet-photo img { + border-radius: 15px; + width: 400px; + object-fit: cover; + height: 510px; +} +.tweet-stats { + margin-top: 10px; + margin-left: 80px; + float: left; + display: flex; + justify-content: space-between; + width: 430px; + margin-bottom: 5px; +} +.comments span, .retweets span, .likes span, .views span { + font-size: 13px; + margin-left: -24px; + font-family: Montserrat; + font-weight: 600; + color: rgb(145, 145, 144); +} +.tweet-stats img { + width: 21px; + display: inline-block; +} +.comments-img, .comments, .retweets-img, .retweets, .likes-img, .likes, .views-img, .views, .share-img { + transition: filter 0.5s; +} +.comments-img:hover, .comments:hover, .views-img:hover, .views:hover, .share-img:hover { + filter: invert(74%) sepia(51%) saturate(4819%) hue-rotate(181deg) brightness(93%) contrast(90%); +} +.retweets-img:hover, .retweets:hover { + filter: invert(39%) sepia(88%) saturate(411%) hue-rotate(71deg) brightness(99%) contrast(98%); +} +.likes-img:hover, .likes:hover { + filter: invert(28%) sepia(62%) saturate(1566%) hue-rotate(332deg) brightness(95%) contrast(92%); +} + +.tweet-stats .share-img img { + width: 24px; + display: inline-block; +} \ No newline at end of file diff --git a/1-exercise-solutions/twitter-default-page-clone/styles/overlay.css b/1-exercise-solutions/twitter-default-page-clone/styles/overlay.css new file mode 100644 index 0000000..2b1d582 --- /dev/null +++ b/1-exercise-solutions/twitter-default-page-clone/styles/overlay.css @@ -0,0 +1,54 @@ +.overlay { + width: 100%; + height: 70px; + background-color: rgb(76, 159, 226); + position: fixed; + bottom: 0; + left: 0; + z-index: 3; + display: flex; + justify-content: center; + +} +.overlay-flexbox { + display: flex; + justify-content: space-between; + position: relative; + align-items: center; + width: 55%; /* problem */ +} +.overlay-texts { + display: flex; + flex-direction: column; + color: white; +} +.Title { + font-weight: bold; + font-family: Arial, Helvetica, sans-serif; + font-size: 24px; +} +.description { + font-family: Arial, Helvetica, sans-serif; +} +.overlay-buttons { + position: relative; +} +.log-in { + border-radius: 20px; + border: 1px solid rgba(255, 255, 255, 0.349); + background-color: transparent; + color: white; + padding: 9px 14px 9px 14px; + font-weight: bold; + font-size: 15px; +} +.sign-up { + margin-left: 10px; + border-radius: 20px; + border: 1px solid rgba(255, 255, 255, 0.349); + background-color: white; + color: black; + padding: 7px 16px 7px 16px; + font-weight: 800; + font-size: 14px; +} \ No newline at end of file diff --git a/1-exercise-solutions/twitter-default-page-clone/styles/responsive.css b/1-exercise-solutions/twitter-default-page-clone/styles/responsive.css new file mode 100644 index 0000000..0933d01 --- /dev/null +++ b/1-exercise-solutions/twitter-default-page-clone/styles/responsive.css @@ -0,0 +1,386 @@ +@media (min-width: 1px) and (max-width: 1299px) { + .icons-text { + display: none; + } +} +@media (min-width: 1022px) { + .navbar { + width: 100px; + display: flex; + align-items: center; + flex-direction: column; + position: fixed; + top: 0; + bottom: 0; + left: 0; + z-index: 1; + border-right: 1px solid rgb(241, 236, 236); + } + .navbar img { + padding-top: 10px; + width: 35px; + } + .navbar .search-icon, .navbar .settings-icon { + padding-top: 20px; + } +} + +@media (max-width: 1026px) { + .navbar-2 { + display: none; + } +} + +@media (min-width: 1125px) { + .navbar { + width: 193px; + display: flex; + align-items: flex-end; + float: right; + flex-direction: column; + position: fixed; + top: 0; + bottom: 0; + left: 0; + z-index: 1; + border-right: 1px solid rgb(241, 236, 236); + } + .navbar img { + padding-top: 10px; + padding-right: 30px; + width: 35px; + } + .navbar .search-icon, .navbar .settings-icon { + padding-top: 20px; + } + + .main-page { + padding-left: 94px; + } +} + +/* too big */ +@media (min-width: 1299px) { + .navbar { + width: 260px; + display: flex; + align-items: flex-start; + float: left; + flex-direction: column; + position: fixed; + top: 0; + bottom: 0; + left: 0; + z-index: 1; + border-right: 1px solid rgb(241, 236, 236); + } + .icons-text { + font-size: 20px; + position: relative; + bottom: 10px; + right: 15px; + } + .navbar div:nth-child(2) { + font-weight: bold; + } + .navbar img { + padding-top: 10px; + padding-left: 30px; + width: 35px; + } + .navbar .search-icon, .navbar .settings-icon { + padding-top: 20px; + } + + /* main page */ + .main-page { + padding-left: 160px; + } + + /* second navbar */ + .navbar-2 { + top: 12px; + right: 65px; + position: fixed; + } + + .first-navbar2-sidebar { + border: 1px solid rgb(231, 225, 225); + width: 340px; + border-radius: 14px; + display: flex; + flex-direction: column; + align-items: center; + padding-bottom: 15px; + } + + .buttons { + margin-top: 5px; + margin-bottom: 15px; + display: flex; + flex-direction: column; + width: 285px; + } + +} + +@media (max-width: 960px) { + .overlay-flexbox { + display: flex; + justify-content: center; + position: relative; + align-items: center; + width: 100%; /* problem */ + } + /* .overlay-buttons { + position: relative; + } */ + .log-in { + border-radius: 20px; + border: 1px solid rgba(255, 255, 255, 0.349); + background-color: transparent; + color: white; + padding: 10px 100px 10px 100px; + font-weight: bold; + font-size: 15px; + } + .sign-up { + margin-left: 10px; + border-radius: 20px; + border: 1px solid rgba(255, 255, 255, 0.349); + background-color: white; + color: black; + padding: 10px 100px 10px 100px; + font-weight: 800; + font-size: 14px; + + } +} + +@media (max-width: 540px) { + .overlay-flexbox { + display: flex; + justify-content: center; + position: relative; + align-items: center; + width: 100%; /* problem */ + } + /* .overlay-buttons { + position: relative; + } */ + .log-in { + border-radius: 20px; + border: 1px solid rgba(255, 255, 255, 0.349); + background-color: transparent; + color: white; + padding: 8px 50px 8px 50px; + font-weight: bold; + font-size: 15px; + } + .sign-up { + margin-left: 10px; + border-radius: 20px; + border: 1px solid rgba(255, 255, 255, 0.349); + background-color: white; + color: black; + padding: 8px 50px 8px 50px; + font-weight: 800; + font-size: 14px; + + } +} + +@media (max-width: 450px) { + .overlay-flexbox { + display: flex; + justify-content: center; + position: relative; + align-items: center; + width: 100%; /* problem */ + } + /* .overlay-buttons { + position: relative; + } */ + .log-in { + border-radius: 20px; + border: 1px solid rgba(255, 255, 255, 0.349); + background-color: transparent; + color: white; + padding: 8px 8px 8px 8px; + font-weight: bold; + font-size: 15px; + } + .sign-up { + margin-left: 10px; + border-radius: 20px; + border: 1px solid rgba(255, 255, 255, 0.349); + background-color: white; + color: black; + padding: 8px 8px 8px 8px; + font-weight: 800; + font-size: 14px; + + } +} + +@media (max-width: 960px) { + .Title, .description { + display: none; + } + +} + +@media (max-width: 500px) { + .Title, .description { + display: none; + } +} + +@media (max-width: 720px) { + /* main page code */ +.main-page { + border-right: 1px solid rgb(241, 236, 236); + width: 400px; + bottom: 0; + top: 0; + position: relative; + height: auto; +} +.explore { + margin-left: -35px; + font-family: Arial, Helvetica, sans-serif; + font-weight: 600; + font-size: 20px; + display: flex; + justify-content: space-between; + height: 45px; + background-color: rgba(255, 255, 255, 0.952); + position: fixed; + width: 400px; +} + +.explore div { + padding: 15px 0px 0px 20px; +} + +.explore img { + padding-right: 15px; +} +.main-page-settings-icon { + width: 23px; +} + +.spacing { + padding-top: 70px; +} +.tweet-container { + margin-left: -35px; + border-bottom: 1px solid rgb(241, 236, 236); + display: grid; + grid-row: 1fr; + transition: background-color 0.5s; +} +.tweet-container:hover { + background-color: rgba(211, 211, 211, 0.39); + cursor: pointer; +} +.tweet { + margin-top: 5px; + display: flex; +} +.profile-picture img { + width: 45px; + margin-left: 15px; + border-radius: 25px; + margin-top: 5px; +} +.profile-info { + padding-left: 15px; + display: flex; + flex-direction: column; +} +.name-id-time { + width: 309px; + justify-content: space-between; + display: flex; +} +.name-id-time img { + margin-right: 3px; + width: 15px; +} +.profile-name { + font-family: Arial, Helvetica, sans-serif; + font-size: 17px; + font-weight: 600; +} +.id-and-time { + margin-left: 2px; + font-size: 15px; + font-family: Arial, Helvetica, sans-serif; + color: rgb(129, 123, 123); +} +.tweet-text { + width: 70%; + margin-top: 5px; + font-family: Arial, Helvetica, sans-serif; + font-size: 17px; +} +.tweet-photo { + margin-top: 20px; + display: flex; +} +.tweet-photo img { + border-radius: 15px; + width: 300px; + object-fit: cover; + height: 510px; +} +.tweet-stats { + margin-top: 10px; + margin-left: 80px; + float: left; + display: flex; + justify-content: space-between; + width: 430px; + margin-bottom: 5px; +} +.comments span, .retweets span, .likes span, .views span { + font-size: 13px; + margin-left: -24px; + font-family: Montserrat; + font-weight: 600; + color: rgb(145, 145, 144); +} +.tweet-stats img { + + width: 21px; + display: inline-block; +} +.tweet-stats .share-img img { + width: 24px; + display: inline-block; +} +/* navbar check */ +.navbar { + width: 65px; + display: flex; + align-items: center; + flex-direction: column; + position: fixed; + top: 0; + bottom: 0; + left: 0; + z-index: 1; + border-right: 1px solid rgb(241, 236, 236); +} +.navbar img { + padding-top: 10px; + width: 30px; +} +.navbar .search-icon, .navbar .settings-icon { + padding-top: 20px; +} +.main-page { + padding-left: 4px; +} +} \ No newline at end of file diff --git a/1-exercise-solutions/twitter-default-page-clone/styles/sidebar1.css b/1-exercise-solutions/twitter-default-page-clone/styles/sidebar1.css new file mode 100644 index 0000000..70dc41d --- /dev/null +++ b/1-exercise-solutions/twitter-default-page-clone/styles/sidebar1.css @@ -0,0 +1,20 @@ +.navbar { + width: 100px; + display: flex; + align-items: center; + flex-direction: column; + position: fixed; + top: 0; + bottom: 0; + left: 0; + z-index: 1; + border-right: 1px solid rgb(241, 236, 236); +} +.navbar img { + padding-top: 10px; + width: 35px; +} +.navbar .search-icon, .navbar .settings-icon { + padding-top: 20px; +} + diff --git a/1-exercise-solutions/twitter-default-page-clone/styles/sidebar2.css b/1-exercise-solutions/twitter-default-page-clone/styles/sidebar2.css new file mode 100644 index 0000000..85a5023 --- /dev/null +++ b/1-exercise-solutions/twitter-default-page-clone/styles/sidebar2.css @@ -0,0 +1,122 @@ + +.navbar-2 { + top: 12px; + right: 15px; + position: fixed; +} + +.first-navbar2-sidebar { + border: 1px solid rgb(231, 225, 225); + width: 290px; + border-radius: 14px; + display: flex; + flex-direction: column; + align-items: center; + padding-bottom: 15px; +} + +.new-to-twitter { + font-family: Verdana, Geneva, Tahoma, sans-serif; + margin: 5px auto auto 15px; + font-weight: 600; + font-size: 18px; +} + +.signup-text { + padding-top: 7px; + font-family: Roboto; + font-size: 14px; + margin: 5px auto auto 15px; + width: 270px; +} + +.navbar-2 img { + width: 20px; +} + +.buttons { + margin-top: 5px; + margin-bottom: 15px; + display: flex; + flex-direction: column; + width: 245px; +} + +.signin-button { + font-family: Roboto; + margin-top: 10px; + border: 1px solid lightgrey; + border-radius: 20px; + background-color: white; + height: 35px; + font-size: 15px; +} + +.signin-button a { + text-decoration: none; + color: black; +} + +.buttons button { + transition: background-color 0.15s; +} + +.buttons button:hover { + background-color: rgba(211, 211, 211, 0.39); +} + +.signin-button span { + position: relative; + bottom: 3px; +} +.signin-button img { + position: relative; + top: 1px; +} +.buttons button:nth-child(2), +.buttons button:nth-child(3) { + font-weight: bold; +} + +.Privacy-Policy { + padding-top: 1px; + font-family: Roboto; + font-size: 12px; + margin: 5px auto auto 15px; + width: 270px; +} +.Privacy-Policy a, .tweet-text span { + text-decoration: none; + color: rgb(90, 138, 240); +} + +.Privacy-Policy a:hover { + text-decoration: underline; +} + +.second-navbar2-sidebar { + margin-top: 15px; + width: 270px; + grid-template-rows: 20px 10px; + display: grid; +} +.second-navbar2-sidebar span { + display: flex; + font-size: 13px; + width: 180px; + white-space: nowrap; +} + +.second-navbar2-sidebar span div { + margin-left: 10px; +} + +.second-navbar2-sidebar span div a { + text-decoration: none; + color: rgb(124, 118, 118); +} + +.second-navbar2-sidebar span div a:hover { + text-decoration: underline; + color: rgb(124, 118, 118); +}