├── 1.accordion ├── index.html ├── main.js └── style.css ├── 10.modal ├── index.html ├── main.js └── style.css ├── 11.tic-tac-toe ├── index.html ├── main.js └── style.css ├── 12.fiilter-cards ├── index.html ├── main.js └── style.css ├── 13.qr-code-generator ├── index.html ├── main.js └── style.css ├── 14.scroll-to-top-bottom ├── index.html ├── main.js └── style.css ├── 15.button-ripple-effect ├── index.html ├── main.js └── style.css ├── 16.mutistep-progress-bar ├── index.html ├── main.js └── style.css ├── 17.scroll-indicator ├── index.html ├── main.js └── style.css ├── 18.tip-calculator ├── index.html ├── main.js └── style.css ├── 19.sticky-navbar ├── index.html ├── main.js └── style.css ├── 2.random-color-generator ├── index.html ├── main.js └── style.css ├── 20.random-image-generator ├── index.html ├── main.js └── style.css ├── 21.github-profile-finder ├── index.html ├── main.js └── style.css ├── 22.recipe-app ├── index.html ├── main.js └── style.css ├── 23.pagination ├── index.html ├── main.js └── style.css ├── 24.notes-app ├── index.html ├── main.js └── style.css ├── 3.star-rating ├── index.html ├── main.js └── style.css ├── 4.api-call ├── index.html ├── main.js └── style.css ├── 5.Image-Slider ├── index.html ├── main.js └── style.css ├── 6.load-more-button ├── index.html ├── main.js └── style.css ├── 7.light-dark-mode ├── index.html ├── main.js └── style.css ├── 8.random-quote-generator ├── index.html ├── main.js └── style.css └── 9.tabs ├── index.html ├── main.js └── style.css /1.accordion/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 |${dataItem.answer}
41 |16 | Lorem ipsum dolor sit, amet consectetur adipisicing elit. Eos corrupti 17 | enim quidem dolorum sequi, eaque ullam in sapiente cupiditate? Porro 18 | unde odio harum debitis quam, recusandae temporibus. Possimus, odio 19 | culpa. 20 |
21 | 25 |${userItem.firstName} ${userItem.lastName}
40 |#ffffff
13 | 14 | 15 |rgb(255,255,255)
18 |Loading Data ! Please Wait
16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /21.github-profile-finder/main.js: -------------------------------------------------------------------------------- 1 | const searchInput = document.querySelector(".search-input"); 2 | const searchBtn = document.querySelector(".search-btn"); 3 | const BASE_URL = "https://api.github.com/users/"; 4 | const githubProfileDetails = document.querySelector(".github-profile-details"); 5 | const loader = document.querySelector(".loading-text"); 6 | 7 | function showLoader() { 8 | loader.classList.add("show"); 9 | githubProfileDetails.classList.add("hide"); 10 | } 11 | 12 | function removeLoader() { 13 | loader.classList.remove("show"); 14 | githubProfileDetails.classList.remove("hide"); 15 | } 16 | 17 | async function fetchGithubProfileDetails() { 18 | showLoader() 19 | const response = await fetch(`${BASE_URL}${searchInput.value}`); 20 | const result = await response.json(); 21 | 22 | console.log(result); 23 | 24 | if (result) { 25 | removeLoader() 26 | displayProfileDetails(result); 27 | searchInput.value = '' 28 | } 29 | } 30 | 31 | function displayProfileDetails(getProfileDetails) { 32 | const { login, avatar_url, public_repos, followers, following } = 33 | getProfileDetails; 34 | githubProfileDetails.innerHTML = ` 35 |${login}
36 |Repos :${public_repos}
38 |Followers :${followers}
39 |Following :${following}
40 | `; 41 | } 42 | 43 | searchBtn.addEventListener("click", fetchGithubProfileDetails); 44 | -------------------------------------------------------------------------------- /21.github-profile-finder/style.css: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | .loading-text{ 6 | display: none; 7 | } 8 | 9 | .loading-text.show { 10 | display: block; 11 | } 12 | 13 | .github-profile-details.hide { 14 | display: none; 15 | } -------------------------------------------------------------------------------- /22.recipe-app/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |${getRecipeData.name}
107 | `; 108 | } 109 | -------------------------------------------------------------------------------- /22.recipe-app/style.css: -------------------------------------------------------------------------------- 1 | * { 2 | margin: 0; 3 | padding: 0; 4 | box-sizing: border-box; 5 | } 6 | 7 | body { 8 | padding: 15px; 9 | } 10 | 11 | h1 { 12 | margin-bottom: 40px; 13 | } 14 | 15 | .recipe-list { 16 | display: grid; 17 | grid-template-columns: repeat(4, 1fr); 18 | gap: 15px; 19 | } 20 | 21 | .recipe-list .recipe-item { 22 | display: flex; 23 | flex-direction: column; 24 | gap: 15px; 25 | padding: 20px; 26 | color: #fff; 27 | border: 2px solid rgb(253, 52, 243); 28 | background: linear-gradient(150deg, #39ef74, #4600f1 100%); 29 | } 30 | 31 | .recipe-list .recipe-item .recipe-image { 32 | width: 100%; 33 | height: 100%; 34 | object-fit: cover; 35 | } 36 | 37 | .recipe-list .recipe-item .recipe-name { 38 | font-size: 30px; 39 | font-weight: bolder; 40 | } 41 | 42 | .recipe-list .recipe-item .recipe-cuisine { 43 | font-size: 18px; 44 | color: #ffdeb8; 45 | } 46 | 47 | .recipe-list .recipe-item .recipe-ingredients { 48 | font-size: 16px; 49 | font-weight: bold; 50 | } 51 | 52 | .recipe-list .recipe-item .recipe-meal-type, 53 | .recipe-list .recipe-item .recipe-rating { 54 | font-size: 22px; 55 | color: #c1fdd4; 56 | } 57 | 58 | .recipe-list .recipe-item .recipe-details-button { 59 | padding: 12px 20px; 60 | border: none; 61 | font-size: 25px; 62 | background-color: rgb(242, 242, 117); 63 | font-weight: bold; 64 | letter-spacing: 2px; 65 | cursor: pointer; 66 | } 67 | 68 | .loader { 69 | display: none; 70 | } 71 | 72 | .recipe-list.hide { 73 | display: none; 74 | } 75 | 76 | .loader.show { 77 | display: block; 78 | border: 3px solid rgba(255, 255, 255, 0.4); 79 | border-radius: 50%; 80 | width: 50px; 81 | height: 50px; 82 | position: absolute; 83 | border-top: 3px solid red; 84 | top: 50%; 85 | left: 50%; 86 | transform: translate(-50%, -50%); 87 | animation: animateLoader 1s linear infinite; 88 | } 89 | 90 | @keyframes animateLoader { 91 | 0% { 92 | transform: rotate(0deg); 93 | } 94 | 95 | 100% { 96 | transform: rotate(360deg); 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /23.pagination/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |${postItem.body}
80 |Loading Data ! Please wait.
14 | 15 |${getQuote.author}
33 |${getQuote.content}
34 |${getQuote.dateAdded}
35 |${getQuote.tags[0]}
36 |This is the Home Section
21 |This is the Services Section
22 |This is the Projects Section
23 |This is the Portfolio Section
24 |This is the Contact Section
25 | 26 |