├── README.md ├── assets ├── css │ └── style.css ├── images │ ├── Thumbs.db │ ├── logo.svg │ ├── product-1.png │ ├── product-2.png │ ├── product-3.png │ ├── product-4.png │ └── profile.png └── js │ └── script.js ├── index.html ├── index.txt ├── readme-images └── desktop.png └── style-guide.md /README.md: -------------------------------------------------------------------------------- 1 |
2 | 3 | ![GitHub repo size](https://img.shields.io/github/repo-size/codewithsadee/nike) 4 | ![GitHub stars](https://img.shields.io/github/stars/codewithsadee/nike?style=social) 5 | ![GitHub forks](https://img.shields.io/github/forks/codewithsadee/nike?style=social) 6 | [![Twitter Follow](https://img.shields.io/twitter/follow/codewithsadee_?style=social)](https://twitter.com/intent/follow?screen_name=codewithsadee_) 7 | [![YouTube Video Views](https://img.shields.io/youtube/views/0O3yFSEujrw?style=social)](https://youtu.be/0O3yFSEujrw) 8 | 9 |
10 |
11 | 12 |

Nike - Product Detail Website

13 | 14 | Nike is a fully responsive product detail page,
Responsive for all devices, build using HTML, CSS, and JavaScript. 15 | 16 | ➥ Live Demo 17 | 18 |
19 | 20 |
21 | 22 | ### Demo Screeshots 23 | 24 | ![Nike Desktop Demo](./readme-images/desktop.png "Desktop Demo") 25 | 26 | ### Prerequisites 27 | 28 | Before you begin, ensure you have met the following requirements: 29 | 30 | * [Git](https://git-scm.com/downloads "Download Git") must be installed on your operating system. 31 | 32 | ### Run Locally 33 | 34 | To run **Nike** locally, run this command on your git bash: 35 | 36 | Linux and macOS: 37 | 38 | ```bash 39 | sudo git clone https://github.com/codewithsadee/nike.git 40 | ``` 41 | 42 | Windows: 43 | 44 | ```bash 45 | git clone https://github.com/codewithsadee/nike.git 46 | ``` 47 | 48 | ### Contact 49 | 50 | If you want to contact with me you can reach me at [Twitter](https://www.twitter.com/codewithsadee). 51 | 52 | ### License 53 | 54 | This project is **free to use** and does not contains any license. 55 | -------------------------------------------------------------------------------- /assets/css/style.css: -------------------------------------------------------------------------------- 1 | /*-----------------------------------*\ 2 | #style.css 3 | \*-----------------------------------*/ 4 | 5 | /** 6 | * copyright 2022 codewithsadee 7 | */ 8 | 9 | 10 | 11 | 12 | 13 | /*-----------------------------------*\ 14 | #CUSTOM PROPERTY 15 | \*-----------------------------------*/ 16 | 17 | :root { 18 | 19 | /** 20 | * colors 21 | */ 22 | 23 | --cadet-blue-crayola: hsl(220, 14%, 75%); 24 | --dark-electric-blue: hsl(217, 9%, 45%); 25 | --shamrock-green: hsl(146, 51%, 41%); 26 | --sea-green_10: hsla(146, 75%, 30%, 0.1); 27 | --eerie-black: hsl(218, 12%, 13%); 28 | --ghost-white: hsl(230, 60%, 98%); 29 | --sea-green: hsl(146, 75%, 30%); 30 | --honeydew: hsl(146, 74%, 94%); 31 | --white: hsl(0, 0%, 100%); 32 | --black: hsl(0, 0%, 0%); 33 | 34 | /** 35 | * typography 36 | */ 37 | 38 | --ff-kumbh-sans: 'Kumbh Sans', sans-serif; 39 | 40 | --fs-1: 2.8rem; 41 | --fs-2: 1.8rem; 42 | --fs-3: 1.5rem; 43 | --fs-4: 1.2rem; 44 | 45 | --fw-500: 500; 46 | --fw-700: 700; 47 | 48 | /** 49 | * box-shadow 50 | */ 51 | 52 | --shadow-1: 0 2px 3px hsla(0, 0%, 0%, 0.2); 53 | --shadow-2: 0 10px 30px -10px var(--sea-green); 54 | 55 | /** 56 | * border radius 57 | */ 58 | 59 | --radius-circle: 50%; 60 | --radius-15: 15px; 61 | --radius-12: 12px; 62 | --radius-10: 10px; 63 | --radius-6: 6px; 64 | 65 | /** 66 | * transition 67 | */ 68 | 69 | --transition-1: 0.25s ease; 70 | --transition-2: 0.5s ease; 71 | --cubic-out: cubic-bezier(0.33, 0.85, 0.4, 0.96); 72 | 73 | } 74 | 75 | 76 | 77 | 78 | 79 | /*-----------------------------------*\ 80 | #RESET 81 | \*-----------------------------------*/ 82 | 83 | *, 84 | *::before, 85 | *::after { 86 | margin: 0; 87 | padding: 0; 88 | box-sizing: border-box; 89 | } 90 | 91 | li { list-style: none; } 92 | 93 | a, 94 | img, 95 | span, 96 | button, 97 | ion-icon { display: block; } 98 | 99 | a { 100 | color: inherit; 101 | text-decoration: none; 102 | } 103 | 104 | img { height: auto; } 105 | 106 | button { 107 | background: none; 108 | border: none; 109 | font: inherit; 110 | cursor: pointer; 111 | } 112 | 113 | ion-icon { 114 | pointer-events: none; 115 | --ionicon-stroke-width: 40px; 116 | } 117 | 118 | html { 119 | font-family: var(--ff-kumbh-sans); 120 | font-size: 10px; 121 | scroll-behavior: smooth; 122 | } 123 | 124 | body { 125 | background-color: var(--white); 126 | color: var(--dark-electric-blue); 127 | font-size: 1.6rem; 128 | } 129 | 130 | 131 | 132 | 133 | 134 | /*-----------------------------------*\ 135 | #REUSED STYLE 136 | \*-----------------------------------*/ 137 | 138 | .container { padding-inline: 15px; } 139 | 140 | .img-cover { 141 | width: 100%; 142 | height: 100%; 143 | object-fit: cover; 144 | } 145 | 146 | 147 | 148 | 149 | 150 | /*-----------------------------------*\ 151 | #HEADER 152 | \*-----------------------------------*/ 153 | 154 | .header { 155 | position: relative; 156 | padding-block: 20px; 157 | box-shadow: var(--shadow-1); 158 | z-index: 1; 159 | } 160 | 161 | .header .container { 162 | display: flex; 163 | align-items: center; 164 | gap: 10px; 165 | } 166 | 167 | .nav-open-btn, 168 | .header-action-btn { 169 | font-size: 25px; 170 | color: var(--dark-electric-blue); 171 | transition: var(--transition-1); 172 | } 173 | 174 | :is(.nav-open-btn, .header-action-btn):is(:hover, :focus) { color: var(--eerie-black); } 175 | 176 | .header-action { 177 | display: flex; 178 | align-items: center; 179 | gap: 20px; 180 | margin-inline-start: auto; 181 | } 182 | 183 | .profile-btn .img { width: 30px; } 184 | 185 | .navbar { 186 | position: fixed; 187 | top: 0; 188 | left: -250px; 189 | background-color: var(--white); 190 | height: 100vh; 191 | max-width: 250px; 192 | width: 100%; 193 | padding: 20px; 194 | z-index: 2; 195 | transition: 0.25s var(--cubic-out); 196 | visibility: hidden; 197 | } 198 | 199 | .navbar.active { 200 | visibility: visible; 201 | transform: translateX(250px); 202 | transition-duration: 0.5s; 203 | } 204 | 205 | .nav-close-btn { 206 | color: var(--dark-electric-blue); 207 | font-size: 22px; 208 | margin-block-end: 50px; 209 | } 210 | 211 | .nav-close-btn ion-icon { --ionicon-stroke-width: 70px; } 212 | 213 | .navbar-link { 214 | font-size: var(--fs-2); 215 | color: var(--eerie-black); 216 | font-weight: var(--fw-700); 217 | padding-block-end: 22px; 218 | } 219 | 220 | .overlay { 221 | position: fixed; 222 | top: 0; 223 | left: 0; 224 | width: 100%; 225 | height: 100vh; 226 | background-color: var(--black); 227 | transition: var(--transition-1); 228 | z-index: 1; 229 | opacity: 0; 230 | pointer-events: none; 231 | } 232 | 233 | .overlay.active { 234 | opacity: 0.75; 235 | pointer-events: all; 236 | } 237 | 238 | 239 | 240 | 241 | 242 | /*-----------------------------------*\ 243 | #MAIN CONTENT 244 | \*-----------------------------------*/ 245 | 246 | .product-slides { 247 | position: relative; 248 | margin-inline: -15px; 249 | overflow: hidden; 250 | } 251 | 252 | .slider-banner { 253 | display: flex; 254 | transition: var(--transition-2); 255 | } 256 | 257 | .product-banner { 258 | min-width: 100%; 259 | max-height: 300px; 260 | } 261 | 262 | .slide-btn { 263 | position: absolute; 264 | top: 50%; 265 | transform: translateY(-50%); 266 | background-color: var(--white); 267 | color: var(--eerie-black); 268 | padding: 12px; 269 | border-radius: var(--radius-circle); 270 | } 271 | 272 | .slide-btn.prev { left: 15px; } 273 | 274 | .slide-btn.next { right: 15px; } 275 | 276 | .slide-btn.disabled { 277 | color: var(--dark-electric-blue); 278 | opacity: 0.8; 279 | pointer-events: none; 280 | } 281 | 282 | .product-content { 283 | padding-block: 24px 50px; 284 | padding-inline: 8px; 285 | } 286 | 287 | .product-content .product-subtitle { 288 | color: var(--sea-green); 289 | font-size: var(--fs-4); 290 | font-weight: var(--fw-700); 291 | text-transform: uppercase; 292 | letter-spacing: 1px; 293 | } 294 | 295 | .product-content .product-title { 296 | color: var(--eerie-black); 297 | font-size: var(--fs-1); 298 | line-height: 1.1; 299 | margin-block: 12px 18px; 300 | } 301 | 302 | .product-content .product-text { 303 | font-size: var(--fs-3); 304 | line-height: 1.7; 305 | } 306 | 307 | .product-content .wrapper { 308 | display: flex; 309 | align-items: center; 310 | gap: 15px; 311 | margin-block: 30px 25px; 312 | } 313 | 314 | .product-content .price { 315 | color: var(--eerie-black); 316 | font-size: var(--fs-1); 317 | font-weight: var(--fw-700); 318 | } 319 | 320 | .product-content .badge { 321 | background-color: var(--sea-green_10); 322 | color: var(--sea-green); 323 | font-weight: var(--fw-700); 324 | padding: 4px 10px; 325 | border-radius: var(--radius-6); 326 | } 327 | 328 | .product-content .del { 329 | color: var(--cadet-blue-crayola); 330 | font-weight: var(--fw-500); 331 | margin-inline-start: auto; 332 | } 333 | 334 | .counter-wrapper { 335 | display: flex; 336 | justify-content: space-between; 337 | align-items: center; 338 | background-color: var(--ghost-white); 339 | border-radius: var(--radius-10); 340 | margin-block-end: 15px; 341 | } 342 | 343 | .counter-btn { 344 | color: var(--sea-green); 345 | font-size: 18px; 346 | padding: 19px; 347 | transition: var(--transition-1); 348 | } 349 | 350 | .counter-btn ion-icon { --ionicon-stroke-width: 80px; } 351 | 352 | .counter-btn:is(:hover, :focus) { color: var(--shamrock-green); } 353 | 354 | .counter-wrapper .span { 355 | color: var(--eerie-black); 356 | font-weight: var(--fw-700); 357 | } 358 | 359 | .cart-btn { 360 | display: flex; 361 | align-items: center; 362 | justify-content: center; 363 | gap: 15px; 364 | width: 100%; 365 | background-color: var(--sea-green); 366 | color: var(--white); 367 | font-weight: var(--fw-500); 368 | padding: 18px; 369 | border-radius: var(--radius-10); 370 | box-shadow: var(--shadow-2); 371 | transition: var(--transition-1); 372 | } 373 | 374 | .cart-btn ion-icon { --ionicon-stroke-width: 50px; } 375 | 376 | .cart-btn:is(:hover, :focus) { background-color: var(--shamrock-green); } 377 | 378 | 379 | 380 | 381 | 382 | /*-----------------------------------*\ 383 | #MEDIA QUERIES 384 | \*-----------------------------------*/ 385 | 386 | /** 387 | * responsive for larger than 768px screen 388 | */ 389 | 390 | @media (min-width: 768px) { 391 | 392 | /** 393 | * REUSED STYLE 394 | */ 395 | 396 | .container { 397 | max-width: 400px; 398 | margin-inline: auto; 399 | } 400 | 401 | 402 | 403 | /** 404 | * HEADER 405 | */ 406 | 407 | .header .container { max-width: 720px; } 408 | 409 | 410 | 411 | /** 412 | * PRODUCT 413 | */ 414 | 415 | .product { margin-block-start: 45px; } 416 | 417 | .product .container { 418 | display: grid; 419 | gap: 20px; 420 | } 421 | 422 | .product-slides { border-radius: var(--radius-15); } 423 | 424 | .product-banner { max-height: unset; } 425 | 426 | } 427 | 428 | 429 | 430 | 431 | 432 | /** 433 | * responsive for larger than 992px screen 434 | */ 435 | 436 | @media (min-width: 992px) { 437 | 438 | /** 439 | * CUSTOM PROPERTY 440 | */ 441 | 442 | :root { 443 | 444 | /** 445 | * typography 446 | */ 447 | 448 | --fs-2: 1.4rem; 449 | --fs-4: 1.3rem; 450 | 451 | } 452 | 453 | 454 | 455 | /** 456 | * REUSED STYLE 457 | */ 458 | 459 | .container { max-width: 950px; } 460 | 461 | 462 | 463 | /** 464 | * HEADER 465 | */ 466 | 467 | .header { 468 | padding-block: 25px; 469 | box-shadow: none; 470 | } 471 | 472 | .header .container { 473 | max-width: 950px; 474 | gap: 60px; 475 | } 476 | 477 | .nav-open-btn, 478 | .nav-close-btn { display: none; } 479 | 480 | .navbar { 481 | all: unset; 482 | display: block; 483 | } 484 | 485 | .navbar-list { 486 | display: flex; 487 | gap: 30px; 488 | } 489 | 490 | .navbar-link { 491 | padding-block-end: 0; 492 | color: var(--dark-electric-blue); 493 | font-weight: var(--fw-500); 494 | transition: var(--transition-1); 495 | } 496 | 497 | .navbar-link:is(:hover, :focus) { color: var(--eerie-black); } 498 | 499 | .profile-btn .img { width: 50px; } 500 | 501 | 502 | 503 | /** 504 | * PRODUCT 505 | */ 506 | 507 | .product { margin-block: 75px 100px; } 508 | 509 | .product .container { 510 | grid-template-columns: 1fr 1fr; 511 | align-items: center; 512 | gap: 90px; 513 | } 514 | 515 | .product-slides { margin-inline: 0; } 516 | 517 | .product-content { padding: 0; } 518 | 519 | .product-title { --fs-1: 4.5rem; } 520 | 521 | .btn-group { 522 | display: grid; 523 | grid-template-columns: 0.5fr 1fr; 524 | align-items: center; 525 | gap: 15px; 526 | } 527 | 528 | .counter-wrapper { margin-block-end: 0; } 529 | 530 | } -------------------------------------------------------------------------------- /assets/images/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codewithsadee/nike/6b48e365a26f9524b2f7e167d39a6fcb452b6d16/assets/images/Thumbs.db -------------------------------------------------------------------------------- /assets/images/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /assets/images/product-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codewithsadee/nike/6b48e365a26f9524b2f7e167d39a6fcb452b6d16/assets/images/product-1.png -------------------------------------------------------------------------------- /assets/images/product-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codewithsadee/nike/6b48e365a26f9524b2f7e167d39a6fcb452b6d16/assets/images/product-2.png -------------------------------------------------------------------------------- /assets/images/product-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codewithsadee/nike/6b48e365a26f9524b2f7e167d39a6fcb452b6d16/assets/images/product-3.png -------------------------------------------------------------------------------- /assets/images/product-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codewithsadee/nike/6b48e365a26f9524b2f7e167d39a6fcb452b6d16/assets/images/product-4.png -------------------------------------------------------------------------------- /assets/images/profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codewithsadee/nike/6b48e365a26f9524b2f7e167d39a6fcb452b6d16/assets/images/profile.png -------------------------------------------------------------------------------- /assets/js/script.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | 4 | 5 | /** 6 | * add event on element 7 | */ 8 | 9 | const addEventOnElem = function (elem, type, callback) { 10 | if (elem.length > 1) { 11 | for (let i = 0; i < elem.length; i++) { 12 | elem[i].addEventListener(type, callback); 13 | } 14 | } else { 15 | elem.addEventListener(type, callback); 16 | } 17 | } 18 | 19 | 20 | 21 | /** 22 | * navbar toggle 23 | */ 24 | 25 | const navbar = document.querySelector("[data-navbar]"); 26 | const navToggler = document.querySelectorAll("[data-nav-toggler]"); 27 | const overlay = document.querySelector("[data-overlay]"); 28 | 29 | const toggleNav = function () { 30 | navbar.classList.toggle("active"); 31 | overlay.classList.toggle("active"); 32 | } 33 | 34 | addEventOnElem(navToggler, "click", toggleNav); 35 | 36 | 37 | 38 | /** 39 | * slider funtionality 40 | */ 41 | 42 | const slider = document.querySelector("[data-slider]"); 43 | const nextBtn = document.querySelector("[data-next]"); 44 | const prevBtn = document.querySelector("[data-prev]"); 45 | 46 | // set the slider default position 47 | let sliderPos = 0; 48 | 49 | // set the number of total slider items 50 | const totalSliderItems = 4; 51 | 52 | // make next slide btn workable 53 | const slideToNext = function () { 54 | 55 | sliderPos++; 56 | slider.style.transform = `translateX(-${sliderPos}00%)`; 57 | 58 | sliderEnd(); 59 | 60 | } 61 | 62 | addEventOnElem(nextBtn, "click", slideToNext); 63 | 64 | // make prev slide btn workable 65 | const slideToPrev = function () { 66 | 67 | sliderPos--; 68 | slider.style.transform = `translateX(-${sliderPos}00%)`; 69 | 70 | sliderEnd(); 71 | 72 | } 73 | 74 | addEventOnElem(prevBtn, "click", slideToPrev); 75 | 76 | 77 | 78 | // check when slider is end then what should slider btn do 79 | function sliderEnd() { 80 | if (sliderPos >= totalSliderItems - 1) { 81 | nextBtn.classList.add("disabled"); 82 | } else { 83 | nextBtn.classList.remove("disabled"); 84 | } 85 | 86 | if (sliderPos <= 0) { 87 | prevBtn.classList.add("disabled"); 88 | } else { 89 | prevBtn.classList.remove("disabled"); 90 | } 91 | } 92 | 93 | sliderEnd(); 94 | 95 | 96 | 97 | /** 98 | * product quantity functionality 99 | */ 100 | 101 | const totalPriceElem = document.querySelector("[data-total-price]"); 102 | const qtyElem = document.querySelector("[data-qty]"); 103 | const qtyMinusBtn = document.querySelector("[data-qty-minus]"); 104 | const qtyPlusBtn = document.querySelector("[data-qty-plus]"); 105 | 106 | // set the product default quantity 107 | let qty = 1; 108 | 109 | // set the product default price 110 | let productPrice = 125; 111 | 112 | // set the initial total price 113 | let totalPrice = 125; 114 | 115 | const increaseProductQty = function () { 116 | qty++; 117 | totalPrice = qty * productPrice; 118 | 119 | qtyElem.textContent = qty; 120 | totalPriceElem.textContent = `$${totalPrice}.00`; 121 | } 122 | 123 | addEventOnElem(qtyPlusBtn, "click", increaseProductQty); 124 | 125 | const decreaseProductQty = function () { 126 | if (qty > 1) qty--; 127 | totalPrice = qty * productPrice; 128 | 129 | qtyElem.textContent = qty; 130 | totalPriceElem.textContent = `$${totalPrice}.00`; 131 | } 132 | 133 | addEventOnElem(qtyMinusBtn, "click", decreaseProductQty); -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Product detail page 9 | 10 | 13 | 14 | 15 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 29 | 30 |
31 |
32 | 33 | 36 | 37 | 40 | 41 | 72 | 73 |
74 | 75 | 78 | 79 | 82 | 83 |
84 | 85 |
86 | 87 |
88 |
89 | 90 | 91 | 92 | 93 | 94 |
95 |
96 | 97 | 100 | 101 |
102 |
103 | 104 |
105 | 106 |
107 |
108 | Nike Sneaker 110 |
111 | 112 |
113 | Nike Sneaker 115 |
116 | 117 |
118 | Nike Sneaker 120 |
121 | 122 |
123 | Nike Sneaker 125 |
126 |
127 | 128 | 131 | 132 | 135 | 136 |
137 | 138 |
139 | 140 |

Nike Company

141 | 142 |

Fall Limited Edition Sneakers

143 | 144 |

145 | These low-profile sneakers are your perfect casual wear companion. Featuring a 146 | durable rubber outer sole, they’ll withstand everything the weather can offer. 147 |

148 | 149 |
150 | 151 | $125.00 152 | 153 | 50% 154 | 155 | $250.00 156 | 157 |
158 | 159 |
160 | 161 |
162 | 163 | 166 | 167 | 1 168 | 169 | 172 | 173 |
174 | 175 | 180 | 181 |
182 | 183 |
184 | 185 |
186 |
187 | 188 |
189 |
190 | 191 | 192 | 193 | 194 | 195 | 198 | 199 | 200 | 203 | 204 | 205 | 206 | 207 | 208 | -------------------------------------------------------------------------------- /index.txt: -------------------------------------------------------------------------------- 1 | Product detail page 2 | 3 | 4 | 5 | #---------- HEADER ----------# 6 | 7 | aria-labe = open menu 8 | 9 | 10 | alt = Nike home 11 | 12 | aria-label = close menu 13 | 14 | 15 | Collection 16 | Men 17 | Women 18 | About 19 | Contact 20 | 21 | aria-label = add to cart 22 | 23 | 24 | aria-label = profile 25 | 26 | 27 | 28 | #---------- PRODUCT DETAIL AREA ----------# 29 | 30 | alt = Nike Sneaker 31 | 32 | aria-label = Previous image 33 | 34 | 35 | aria-label = Next image 36 | 37 | 38 | Nike Company 39 | 40 | Fall Limited Edition Sneakers 41 | 42 | These low-profile sneakers are your perfect casual wear companion. Featuring a 43 | durable rubber outer sole, they’ll withstand everything the weather can offer. 44 | 45 | $125.00 46 | 50% 47 | $250.00 48 | 49 | 50 | 1 51 | 52 | 53 | 54 | Add to cart -------------------------------------------------------------------------------- /readme-images/desktop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codewithsadee/nike/6b48e365a26f9524b2f7e167d39a6fcb452b6d16/readme-images/desktop.png -------------------------------------------------------------------------------- /style-guide.md: -------------------------------------------------------------------------------- 1 | # Essential Stuff 2 | 3 | ## Html import links 4 | 5 | Google font 6 | 7 | ``` html 8 | 9 | 10 | 11 | ``` 12 | 13 | Ionicon 14 | 15 | ``` html 16 | 17 | 18 | ``` 19 | 20 | --- 21 | 22 | ## Colors 23 | 24 | ``` css 25 | --cadet-blue-crayola: hsl(220, 14%, 75%); 26 | --dark-electric-blue: hsl(217, 9%, 45%); 27 | --shamrock-green: hsl(146, 51%, 41%); 28 | --sea-green_10: hsla(146, 75%, 30%, 0.1); 29 | --eerie-black: hsl(218, 12%, 13%); 30 | --ghost-white: hsl(230, 60%, 98%); 31 | --sea-green: hsl(146, 75%, 30%); 32 | --honeydew: hsl(146, 74%, 94%); 33 | --white: hsl(0, 0%, 100%); 34 | --black: hsl(0, 0%, 0%); 35 | ``` 36 | 37 | ## Typography 38 | 39 | ``` css 40 | --ff-kumbh-sans: 'Kumbh Sans', sans-serif; 41 | 42 | --fs-1: 2.8rem; 43 | --fs-2: 1.8rem; 44 | --fs-3: 1.5rem; 45 | --fs-4: 1.2rem; 46 | 47 | --fw-500: 500; 48 | --fw-700: 700; 49 | ``` 50 | 51 | ## Shadow 52 | 53 | ``` css 54 | --shadow-1: 0 2px 3px hsla(0, 0%, 0%, 0.2); 55 | --shadow-2: 0 10px 30px -10px var(--sea-green); 56 | ``` 57 | 58 | ## Border Radius 59 | 60 | ``` css 61 | --radius-circle: 50%; 62 | --radius-15: 15px; 63 | --radius-12: 12px; 64 | --radius-10: 10px; 65 | --radius-6: 6px; 66 | ``` 67 | 68 | ## Transition 69 | 70 | ``` css 71 | --transition-1: 0.25s ease; 72 | --transition-2: 0.5s ease; 73 | --cubic-out: cubic-bezier(0.33, 0.85, 0.4, 0.96); 74 | ``` 75 | --------------------------------------------------------------------------------