From ebe85eb8c202e776e56cd601b89fff2d72a1f47b Mon Sep 17 00:00:00 2001 From: Nezumi Date: Sat, 22 Jul 2023 09:43:09 +0700 Subject: [PATCH 01/15] Fix UI --- .../src/assets/fonts/poppins-medium.ttf | Bin 0 -> 156520 bytes .../src/assets/fonts/poppins-medium.woff2 | Bin 0 -> 50488 bytes practice/practice-02/src/index.pug | 13 +++---- .../src/styles/abstracts/_variables.scss | 1 + .../src/styles/bases/_typography.scss | 6 ++++ .../src/styles/components/_logo.scss | 12 ++++++- .../src/styles/layouts/_header.scss | 11 ++++++ .../src/styles/layouts/_navbar.scss | 1 + .../src/styles/layouts/_welcome.scss | 33 +++++++++++++++--- 9 files changed, 65 insertions(+), 12 deletions(-) create mode 100644 practice/practice-02/src/assets/fonts/poppins-medium.ttf create mode 100644 practice/practice-02/src/assets/fonts/poppins-medium.woff2 diff --git a/practice/practice-02/src/assets/fonts/poppins-medium.ttf b/practice/practice-02/src/assets/fonts/poppins-medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..6bcdcc27f22e001e46defdfd9e23f224ff65dd67 GIT binary patch literal 156520 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 Date: Sat, 22 Jul 2023 10:05:21 +0700 Subject: [PATCH 02/15] Fix duplicate code and acc icon for website --- .../src/assets/images/favicon-16x16.png | Bin 0 -> 633 bytes practice/practice-02/src/index.pug | 5 +++ .../src/styles/abstracts/_mixins.scss | 5 ++- .../src/styles/layouts/_header.scss | 7 +++- .../src/styles/layouts/_welcome.scss | 30 ++++++++++++------ 5 files changed, 36 insertions(+), 11 deletions(-) create mode 100644 practice/practice-02/src/assets/images/favicon-16x16.png diff --git a/practice/practice-02/src/assets/images/favicon-16x16.png b/practice/practice-02/src/assets/images/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..9ee99974cbad2cec0b4ad4146c089cbfb9b8445a GIT binary patch literal 633 zcmV-<0*3vGP)Px%Gf6~2R5(wSlFv(2Q546&=lI^dH!2k` zkr1>ATJ#S{P>b5Ms5WkjAaWxu`XNLutRSL57tXwSLq?O#_+Ib66L(OEsm3~+bGi3> zKIh9hm#|65^RowO=-#Wp$*5VqyvcVawd4|${){lZPe*4~8}-cr^XCV3tgjJUW759o zfpy@@$^QcA7w0Y}E6Id@8J6(HE+-#LQ>}Az%fCYY=s<>tttmrkdr7Z(@T%zY-4>GXZS+|||9K}1rk)qYr()gJ`G zyi#g+sZ?4f&-1o8j&oH+9#yN=g-WHevfhU>narf``?r)*$BF2hh^Qn<3Pe-^&>IB7 zLj%}p+x9p!cL2B@hT+#FNjQ~C^)vI0szy=bQz4I=(6j&+u}Gr#mplBmPF(OGjp+6oURX1DK!P4$jn)-^$Zb>5z%)5 zZ2$~3M?||s#0IbzKtM!qec!)P2bcl6uG=2Rv9VrlX=&*+**uoZWnU@PtF^A#ww=>j zm!l|p?KsW=GxrhE<4xDNu{fnvo0$WE_W<6V_Pp^k+dEGDGobMYNH*KL8iu)_E|&0P Tr}3Sw00000NkvXXu0mjfE-xi+ literal 0 HcmV?d00001 diff --git a/practice/practice-02/src/index.pug b/practice/practice-02/src/index.pug index e5f0787..a9bf8ef 100644 --- a/practice/practice-02/src/index.pug +++ b/practice/practice-02/src/index.pug @@ -4,6 +4,11 @@ html(lang="en") meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1.0") link(rel="stylesheet", href="./styles/main.scss") + link( + rel="icon", + type="image/x-icon", + href="./assets/images/favicon-16x16.png" + ) title Food Hut body header.header diff --git a/practice/practice-02/src/styles/abstracts/_mixins.scss b/practice/practice-02/src/styles/abstracts/_mixins.scss index 52ff198..d5f760d 100644 --- a/practice/practice-02/src/styles/abstracts/_mixins.scss +++ b/practice/practice-02/src/styles/abstracts/_mixins.scss @@ -49,12 +49,15 @@ } @mixin setAbsoluteAndLocation( + $absolute: false, $top: null, $left: null, $right: null, $bottom: null ) { - position: absolute; + @if $absolute { + position: absolute; + } @if $top != null { top: $top; diff --git a/practice/practice-02/src/styles/layouts/_header.scss b/practice/practice-02/src/styles/layouts/_header.scss index d795f72..388638b 100644 --- a/practice/practice-02/src/styles/layouts/_header.scss +++ b/practice/practice-02/src/styles/layouts/_header.scss @@ -1,5 +1,10 @@ .header { - @include setAbsoluteAndLocation($top: 0, $right: 0, $left: 0); + @include setAbsoluteAndLocation( + $absolute: true, + $top: 0, + $right: 0, + $left: 0 + ); max-width: 428px; margin: auto; diff --git a/practice/practice-02/src/styles/layouts/_welcome.scss b/practice/practice-02/src/styles/layouts/_welcome.scss index f7f1e49..e4d8b1d 100644 --- a/practice/practice-02/src/styles/layouts/_welcome.scss +++ b/practice/practice-02/src/styles/layouts/_welcome.scss @@ -27,18 +27,18 @@ } &__lines-background { - @include setAbsoluteAndLocation($top: -76px, $right: 0); + @include setAbsoluteAndLocation($absolute: true, $top: -76px, $right: 0); @include size(187px, 430px); } &__arrow-img-up { - @include setAbsoluteAndLocation($top: -15px, $right: 50px); + @include setAbsoluteAndLocation($absolute: true, $top: -15px, $right: 50px); @include size(43px, 215px); } &__mint-img { - @include setAbsoluteAndLocation($bottom: 100px, $right: 0); + @include setAbsoluteAndLocation($absolute: true, $bottom: 100px, $right: 0); } // End banner @@ -57,7 +57,7 @@ } &__orange-img-wrapper { - @include setAbsoluteAndLocation($top: 0, $right: 35px); + @include setAbsoluteAndLocation($absolute: true, $top: 0, $right: 35px); } &__text-box { @@ -84,7 +84,7 @@ &__head-arrow-container { @include size(13px, 7.3px); - @include setAbsoluteAndLocation($right: 107px); + @include setAbsoluteAndLocation($absolute: true, $right: 107px); } &__heading { @@ -96,7 +96,11 @@ } &__underline-img-container { - @include setAbsoluteAndLocation($bottom: -20px, $left: 0px); + @include setAbsoluteAndLocation( + $absolute: true, + $bottom: -20px, + $left: 0px + ); } &__description { @@ -293,7 +297,11 @@ } &__arrow-down-img-wrapper { - @include setAbsoluteAndLocation($top: -50px, $left: 220px); + @include setAbsoluteAndLocation( + $absolute: true, + $top: -50px, + $left: 220px + ); display: block; transition: 0.2s; @@ -305,7 +313,11 @@ &__slider-container { display: block; - @include setAbsoluteAndLocation($bottom: -135px, $left: 65px); + @include setAbsoluteAndLocation( + $absolute: true, + $bottom: -135px, + $left: 65px + ); } // End content @@ -327,7 +339,7 @@ } &__arrow-down-img-wrapper { - @include setAbsoluteAndLocation($top: -95px, $left: 230px); + @include setAbsoluteAndLocation($top: -75px, $left: 230px); } } } From eb1c770a9e35727e25dd68f2dbeddffdfe97accc Mon Sep 17 00:00:00 2001 From: Nezumi Date: Sat, 22 Jul 2023 19:08:49 +0700 Subject: [PATCH 03/15] Update background style --- practice/practice-02/src/layouts/welcome.pug | 194 +++++++++--------- .../src/styles/layouts/_welcome.scss | 28 +-- 2 files changed, 115 insertions(+), 107 deletions(-) diff --git a/practice/practice-02/src/layouts/welcome.pug b/practice/practice-02/src/layouts/welcome.pug index 5a9fc61..f23e2f7 100644 --- a/practice/practice-02/src/layouts/welcome.pug +++ b/practice/practice-02/src/layouts/welcome.pug @@ -1,100 +1,104 @@ - var welcome_img_path = "./assets/images/welcome/"; section.welcome - .welcome__banner - .welcome__banner-container - img.welcome__banner-img( - src=welcome_img_path + "welcome-image-mobile.png", - alt="Welcome banner image" - ) - picture - source( - media="(min-width: 840px)", - srcset=welcome_img_path + "lines-background-desktop.png" + .welcome__container + .welcome__banner + .welcome__banner-container + img.welcome__banner-img( + src=welcome_img_path + "welcome-image-mobile.png", + alt="Welcome banner image" ) - img.welcome__lines-background( - src=welcome_img_path + "lines-background-mobile.png", - alt="Lines background" - ) - picture - source( - media="(min-width: 840px)", - srcset=welcome_img_path + "arrow-desktop.png", - alt="Arrow image" - ) - img.welcome__arrow-img-up( - src=welcome_img_path + "arrow-mobile.png", - alt="Arrow image" - ) - img.welcome__mint-img( - src=welcome_img_path + "mint.png", - alt="Mint image" - ) - .welcome__content - .welcome__arrow-down-img-wrapper - img.welcome__arrow-img-down( - src=welcome_img_path + "arrow-desktop-2.png", - alt="Arrow image down" - ) - .welcome__orange-img-wrapper - picture - source( - media="(min-width: 840px)", - srcset=welcome_img_path + "orange-desktop.png" - ) - img(src=welcome_img_path + "orange.png", alt="Orange background image") - .welcome__text-box - .welcome__icon-container - img.welcome__love-icon( - src=welcome_img_path + "love-icon.png", - alt="Love icon" - ) - .welcome__head-arrow-container - img(src=welcome_img_path + "head-arrow.png", alt="Head arrow image") - p.welcome__text-box-content People Trust us - h1.welcome__heading We're - = " " - span.primary-text serious - = " for " - span.primary-text food - = " & " - .delivery-text-box - span.secondary-text delivery - .welcome__underline-img-container - img(src=welcome_img_path + "underline.png", alt="Underline image") - = "." - - p.welcome__description Best cooks and best delivery guys all at your service. Hot tasty food will reach you in 60 minutes. - form.welcome__search-form(action="#") - .welcome__search-icon-wrapper - img.welcome__search-icon( - src=welcome_img_path + "search-icon.png", - alt="Search icon" - ) - input.welcome__text-input(type="text", placeholder="Search food") - button.welcome__submit-btn(type="submit") - img.welcome__search-icon-btn( - src=welcome_img_path + "search-icon-btn.svg", - alt="Search button image" - ) - .welcome__action-container - a.welcome__download-btn.btn(href="javascript:void(0)") Download App - a.welcome__watch-video-link.no-underline(href="javascript:void(0)") - .welcome__play-icon-wrapper - svg.welcome__play-icon( - width="12", - height="12", - viewBox="0 0 12 13", - fill="none", - xmlns="http://www.w3.org/2000/svg" + picture + source( + media="(min-width: 840px)", + srcset=welcome_img_path + "lines-background-desktop.png" ) - path( - d="M12 6.5L0.749999 12.9952L0.75 0.00480889L12 6.5Z", - fill="currentColor" - ) - span.welcome__text-download-btn Watch Video - .welcome__slider-container - img.welcome__slider-img( - src=welcome_img_path + "slider.png", - alt="Slider image" - ) + img.welcome__lines-background( + src=welcome_img_path + "lines-background-mobile.png", + alt="Lines background" + ) + picture + source( + media="(min-width: 840px)", + srcset=welcome_img_path + "arrow-desktop.png", + alt="Arrow image" + ) + img.welcome__arrow-img-up( + src=welcome_img_path + "arrow-mobile.png", + alt="Arrow image" + ) + img.welcome__mint-img( + src=welcome_img_path + "mint.png", + alt="Mint image" + ) + .welcome__content + .welcome__arrow-down-img-wrapper + img.welcome__arrow-img-down( + src=welcome_img_path + "arrow-desktop-2.png", + alt="Arrow image down" + ) + .welcome__orange-img-wrapper + picture + source( + media="(min-width: 840px)", + srcset=welcome_img_path + "orange-desktop.png" + ) + img( + src=welcome_img_path + "orange.png", + alt="Orange background image" + ) + .welcome__text-box + .welcome__icon-container + img.welcome__love-icon( + src=welcome_img_path + "love-icon.png", + alt="Love icon" + ) + .welcome__head-arrow-container + img(src=welcome_img_path + "head-arrow.png", alt="Head arrow image") + p.welcome__text-box-content People Trust us + h1.welcome__heading We're + = " " + span.primary-text serious + = " for " + span.primary-text food + = " & " + .delivery-text-box + span.secondary-text delivery + .welcome__underline-img-container + img(src=welcome_img_path + "underline.png", alt="Underline image") + = "." + + p.welcome__description Best cooks and best delivery guys all at your service. Hot tasty food will reach you in 60 minutes. + form.welcome__search-form(action="#") + .welcome__search-icon-wrapper + img.welcome__search-icon( + src=welcome_img_path + "search-icon.png", + alt="Search icon" + ) + input.welcome__text-input(type="text", placeholder="Search food") + button.welcome__submit-btn(type="submit") + img.welcome__search-icon-btn( + src=welcome_img_path + "search-icon-btn.svg", + alt="Search button image" + ) + .welcome__action-container + a.welcome__download-btn.btn(href="javascript:void(0)") Download App + a.welcome__watch-video-link.no-underline(href="javascript:void(0)") + .welcome__play-icon-wrapper + svg.welcome__play-icon( + width="12", + height="12", + viewBox="0 0 12 13", + fill="none", + xmlns="http://www.w3.org/2000/svg" + ) + path( + d="M12 6.5L0.749999 12.9952L0.75 0.00480889L12 6.5Z", + fill="currentColor" + ) + span.welcome__text-download-btn Watch Video + .welcome__slider-container + img.welcome__slider-img( + src=welcome_img_path + "slider.png", + alt="Slider image" + ) diff --git a/practice/practice-02/src/styles/layouts/_welcome.scss b/practice/practice-02/src/styles/layouts/_welcome.scss index e4d8b1d..367ec35 100644 --- a/practice/practice-02/src/styles/layouts/_welcome.scss +++ b/practice/practice-02/src/styles/layouts/_welcome.scss @@ -4,16 +4,18 @@ } .welcome { - @include flex-container(center, column); - margin: auto; - max-width: 428px; - padding-top: 117px; background: linear-gradient( 180deg, rgba(245, 71, 72, 0.06) 0%, rgba(245, 71, 72, 0) 100% ); + &__container { + @include flex-container(center, column); + margin: auto; + max-width: 428px; + padding-top: 117px; + } // Start banner &__banner-container { @include size(428px, auto); @@ -218,15 +220,17 @@ @media screen and (min-width: 840px) { .welcome { - @include flex-container( - $flex-direction: row-reverse, - $align-items: center, - $justify-content: space-between - ); + &__container { + @include flex-container( + $flex-direction: row-reverse, + $align-items: center, + $justify-content: space-between + ); - padding-top: 130px; - width: 100%; - max-width: $max-width; + padding-top: 130px; + width: 100%; + max-width: $max-width; + } // Start banner &__banner-img { From e19dbced62f6494da27237a49741ddd079109d07 Mon Sep 17 00:00:00 2001 From: Nezumi Date: Sun, 23 Jul 2023 20:29:27 +0700 Subject: [PATCH 04/15] Add href for button --- practice/practice-02/src/includes/mixins.pug | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/practice/practice-02/src/includes/mixins.pug b/practice/practice-02/src/includes/mixins.pug index 5b1dd78..73b11dd 100644 --- a/practice/practice-02/src/includes/mixins.pug +++ b/practice/practice-02/src/includes/mixins.pug @@ -25,4 +25,4 @@ mixin cardFoodItem(itemFood, price, ratePoint, foodName, foodDescription) span.offer__rate-point= "(" + ratePoint + ")" span.offer__food-name= foodName p.offer__food-description= foodDescription - a.offer__order-btn Order now + a.offer__order-btn.btn.no-underline(href="javascript:void(0)") Order now From a2230be4bac9505944a0e8349ace152d5bb991dc Mon Sep 17 00:00:00 2001 From: Nezumi Date: Sun, 23 Jul 2023 20:33:32 +0700 Subject: [PATCH 05/15] Add style when hover on order button --- practice/practice-02/src/styles/layouts/_offer.scss | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/practice/practice-02/src/styles/layouts/_offer.scss b/practice/practice-02/src/styles/layouts/_offer.scss index df8cc1a..d8a86cb 100644 --- a/practice/practice-02/src/styles/layouts/_offer.scss +++ b/practice/practice-02/src/styles/layouts/_offer.scss @@ -126,10 +126,11 @@ @include setAbsoluteAndLocation(true, $bottom: 0px); padding: 10px 20px; - background-color: $primary-color; - border-radius: 100px; - color: $white; text-transform: capitalize; + + &:hover { + background-color: $secondary-color; + } } &__rosemary-container { From 993c3210546ca6c65d70093a043e8ccef7c8175f Mon Sep 17 00:00:00 2001 From: Loi Phan Date: Mon, 24 Jul 2023 08:31:49 +0700 Subject: [PATCH 06/15] Update mixin.pug code --- practice/practice-02/src/includes/mixins.pug | 29 +++++++++----------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/practice/practice-02/src/includes/mixins.pug b/practice/practice-02/src/includes/mixins.pug index 73b11dd..0fa72f2 100644 --- a/practice/practice-02/src/includes/mixins.pug +++ b/practice/practice-02/src/includes/mixins.pug @@ -1,28 +1,25 @@ - var values = [1, 2, 3]; mixin cardFoodItem(itemFood, price, ratePoint, foodName, foodDescription) - .offer__card-item - img.offer__card-img( - src=offer_img_path + "item-card.png", - alt="Item card image" - ) - img.offer__food-image( + .card-item + img.card-img(src=offer_img_path + "item-card.png", alt="Item card image") + img.food-image( src=offer_img_path + "food-" + itemFood + ".png", alt="Food " + itemFood + " image" ) - span.offer__price= price + "$" - .offer__content-card - .offer__rate - .offer__avatar-container + span.price= price + "$" + .content-card + .rate + .avatar-container each val in values img( src=offer_img_path + "avatar-" + val + "-item-" + itemFood + ".png", alt="Avatar user rate", - class="offer__avatar-" + val + class="avatar-" + val ) - .offer__star-container + .star-container img(src=offer_img_path + "star.png", alt="Star image") - span.offer__rate-point= "(" + ratePoint + ")" - span.offer__food-name= foodName - p.offer__food-description= foodDescription - a.offer__order-btn.btn.no-underline(href="javascript:void(0)") Order now + span.rate-point= "(" + ratePoint + ")" + span.food-name= foodName + p.food-description= foodDescription + a.order-btn.btn.no-underline(href="javascript:void(0)") Order now From 488ff7d4e21d53f8a59c99b3a0c00c18bce47165 Mon Sep 17 00:00:00 2001 From: Loi Phan Date: Mon, 24 Jul 2023 08:33:43 +0700 Subject: [PATCH 07/15] Seperate the card item from offers section style --- .../src/styles/components/_card-item.scss | 84 ++++++++++++++++ .../src/styles/layouts/_offer.scss | 99 ++----------------- practice/practice-02/src/styles/main.scss | 1 + 3 files changed, 92 insertions(+), 92 deletions(-) create mode 100644 practice/practice-02/src/styles/components/_card-item.scss diff --git a/practice/practice-02/src/styles/components/_card-item.scss b/practice/practice-02/src/styles/components/_card-item.scss new file mode 100644 index 0000000..2c99b45 --- /dev/null +++ b/practice/practice-02/src/styles/components/_card-item.scss @@ -0,0 +1,84 @@ +.card-item { + @include flex-container($align-items: center, $flex-direction: column); + @include size(auto, 516px); + + position: relative; +} + +.food-image { + @include setAbsoluteAndLocation(true, $top: 29px); + + margin: auto; +} + +.price { + @include setAbsoluteAndLocation(true, $top: 176px, $right: 110px); + @include size(52px, 52px); + + color: $white; + border: 4px solid $white; + border-radius: 50px; + background-color: $secondary-color; + font-size: $fs-md; + text-align: center; + line-height: 50px; +} + +.content-card { + @include setAbsoluteAndLocation(true, $bottom: 60px); + @include size(100%, auto); + @include flex-container($align-items: center, $flex-direction: column); +} + +.rate { + @include flex-container($align-items: center, $gap: 10px); +} + +.avatar-container { + position: relative; + @include size(74px, 38px); +} + +.avatar { + &-1 { + @include setAbsoluteAndLocation(true, $left: 38px); + z-index: 2; + } + + &-2 { + @include setAbsoluteAndLocation(true, $left: 19px); + z-index: 1; + } + + &-3 { + @include setAbsoluteAndLocation(true, $left: 0); + } +} + +.food-name { + margin-top: 30px; + color: $primary-color; + font-size: $fs-lg; + font-weight: 600; +} + +.food-description { + @include size(100%, auto); + + max-width: 243px; + margin-top: 16px; + text-align: center; + text-transform: capitalize; + color: $black; +} + +.order-btn { + @include setAbsoluteAndLocation(true, $bottom: 0px); + + padding: 10px 20px; + text-transform: capitalize; + + &:hover { + background-color: $secondary-color; + } +} diff --git a/practice/practice-02/src/styles/layouts/_offer.scss b/practice/practice-02/src/styles/layouts/_offer.scss index d8a86cb..797bd3d 100644 --- a/practice/practice-02/src/styles/layouts/_offer.scss +++ b/practice/practice-02/src/styles/layouts/_offer.scss @@ -48,91 +48,6 @@ } } - &__card-item { - @include flex-container($align-items: center, $flex-direction: column); - @include size(auto, 516px); - - position: relative; - } - - &__food-image { - @include setAbsoluteAndLocation(true, $top: 29px); - - margin: auto; - } - - &__price { - @include setAbsoluteAndLocation(true, $top: 176px, $right: 110px); - @include size(52px, 52px); - - color: $white; - border: 4px solid $white; - border-radius: 50px; - background-color: $secondary-color; - font-size: $fs-md; - text-align: center; - line-height: 50px; - } - - &__content-card { - @include setAbsoluteAndLocation(true, $bottom: 60px); - @include size(100%, auto); - @include flex-container($align-items: center, $flex-direction: column); - } - - &__rate { - @include flex-container($align-items: center, $gap: 10px); - } - - &__avatar-container { - position: relative; - @include size(74px, 38px); - } - - &__avatar { - &-1 { - @include setAbsoluteAndLocation(true, $left: 38px); - z-index: 2; - } - - &-2 { - @include setAbsoluteAndLocation(true, $left: 19px); - z-index: 1; - } - - &-3 { - @include setAbsoluteAndLocation(true, $left: 0); - } - } - - &__food-name { - margin-top: 30px; - color: $primary-color; - font-size: $fs-lg; - font-weight: 600; - } - - &__food-description { - @include size(100%, auto); - - max-width: 243px; - margin-top: 16px; - text-align: center; - text-transform: capitalize; - color: $black; - } - - &__order-btn { - @include setAbsoluteAndLocation(true, $bottom: 0px); - - padding: 10px 20px; - text-transform: capitalize; - - &:hover { - background-color: $secondary-color; - } - } - &__rosemary-container { @include setAbsoluteAndLocation(true, $bottom: -120px, $right: 0); z-index: 0; @@ -147,10 +62,6 @@ max-width: $max-width; } - &__food-image { - @include setAbsoluteAndLocation($top: 29px, $right: 55px); - } - &__card-list { @include flex-container( $align-items: center, @@ -160,10 +71,14 @@ row-gap: 30px; flex-wrap: wrap; } + } - &__price { - @include setAbsoluteAndLocation($top: 176px, $right: 70px); - } + .price { + @include setAbsoluteAndLocation($top: 176px, $right: 70px); + } + + .food-image { + @include setAbsoluteAndLocation($top: 29px, $right: 55px); } } diff --git a/practice/practice-02/src/styles/main.scss b/practice/practice-02/src/styles/main.scss index 63c2ab3..941a339 100644 --- a/practice/practice-02/src/styles/main.scss +++ b/practice/practice-02/src/styles/main.scss @@ -11,6 +11,7 @@ @import "./components/button"; @import "./components/toggle-menu"; @import "./components/logo"; +@import "./components/card-item"; // Layouts @import "./layouts/navbar"; From aa26c5fb1182249949ccc323f00d66fdf3ec4453 Mon Sep 17 00:00:00 2001 From: Loi Phan Date: Mon, 24 Jul 2023 15:37:01 +0700 Subject: [PATCH 08/15] Update mixins.pug and offer.pug file --- practice/practice-02/src/includes/mixins.pug | 17 +++++++---------- practice/practice-02/src/layouts/offer.pug | 9 +++++---- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/practice/practice-02/src/includes/mixins.pug b/practice/practice-02/src/includes/mixins.pug index 0fa72f2..60cc7a4 100644 --- a/practice/practice-02/src/includes/mixins.pug +++ b/practice/practice-02/src/includes/mixins.pug @@ -1,25 +1,22 @@ - var values = [1, 2, 3]; -mixin cardFoodItem(itemFood, price, ratePoint, foodName, foodDescription) +mixin cardFoodItem(food) .card-item img.card-img(src=offer_img_path + "item-card.png", alt="Item card image") - img.food-image( - src=offer_img_path + "food-" + itemFood + ".png", - alt="Food " + itemFood + " image" - ) - span.price= price + "$" + img.food-image(src=food.imageUrl, alt=food.name + " image") + span.price= food.price + "$" .content-card .rate .avatar-container each val in values img( - src=offer_img_path + "avatar-" + val + "-item-" + itemFood + ".png", + src=offer_img_path + "avatar-" + val + "-item-" + food.no + ".png", alt="Avatar user rate", class="avatar-" + val ) .star-container img(src=offer_img_path + "star.png", alt="Star image") - span.rate-point= "(" + ratePoint + ")" - span.food-name= foodName - p.food-description= foodDescription + span.rate-point= "(" + food.ratePoint + ")" + p.food-name= food.foodName + p.food-description= food.foodDescription a.order-btn.btn.no-underline(href="javascript:void(0)") Order now diff --git a/practice/practice-02/src/layouts/offer.pug b/practice/practice-02/src/layouts/offer.pug index f3291ab..c108d0a 100644 --- a/practice/practice-02/src/layouts/offer.pug +++ b/practice/practice-02/src/layouts/offer.pug @@ -1,4 +1,5 @@ - var offer_img_path = "./assets/images/offer/"; +- var food_1 = []; section.offer .offer__container @@ -13,10 +14,10 @@ section.offer = " Offers" p.offer__description Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s .offer__card-list - +cardFoodItem(1, 10, "4.5", "Kebab", "Lorem Ipsum is simply dummy text of the printing and typesetting industry") - +cardFoodItem(2, 15, "4.8", "Chicken Tikka", "Lorem Ipsum is simply dummy text of the printing and typesetting industry") - +cardFoodItem(3, 8, "4.2", "Desi Chowmein", "Lorem Ipsum is simply dummy text of the printing and typesetting industry") - +cardFoodItem(4, 28, "5.0", "Chicken Chargha", "Lorem Ipsum is simply dummy text of the printing and typesetting industry") + +cardFoodItem({ no: "1", price: "10" , ratePoint: "4.5", foodName: "Kebab", foodDescription: "Lorem Ipsum is simply dummy text of the printing and typesetting industry", imageUrl: offer_img_path + "food-1.png"}) + +cardFoodItem({ no: "2", price: "15", ratePoint: "4.8", foodName: "Chicken Tikka", foodDescription: "Lorem Ipsum is simply dummy text of the printing and typesetting industry", imageUrl: offer_img_path + "food-2.png"}) + +cardFoodItem({ no: "3", price: "8", ratePoint: "4.2", foodName: "Desi Chowmein", foodDescription: "Lorem Ipsum is simply dummy text of the printing and typesetting industry", imageUrl: offer_img_path + "food-3.png"}) + +cardFoodItem({ no: "4", price: "28", ratePoint: "5.0", foodName: "Chicken Chargha", foodDescription: "Lorem Ipsum is simply dummy text of the printing and typesetting industry", imageUrl: offer_img_path + "food-4.png"}) .offer__rosemary-container picture source( From ef7802f0dfc0a09c0703470bf69bc5052657c52d Mon Sep 17 00:00:00 2001 From: Nezumi Date: Mon, 24 Jul 2023 22:30:55 +0700 Subject: [PATCH 09/15] Refactor code --- .../avatar-1.png} | Bin .../avatar-2.png} | Bin .../avatar-3.png} | Bin .../avatar-4.png} | Bin .../avatar-5.png} | Bin .../avatar-6.png} | Bin .../avatar-7.png} | Bin .../avatar-8.png} | Bin .../avatar-9.png} | Bin .../assets/images/offer/avatar-1-item-4.png | Bin 3390 -> 0 bytes .../assets/images/offer/avatar-2-item-4.png | Bin 2990 -> 0 bytes .../assets/images/offer/avatar-3-item-4.png | Bin 3743 -> 0 bytes practice/practice-02/src/includes/mixins.pug | 19 +++++++++--------- practice/practice-02/src/layouts/offer.pug | 14 ++++++++----- 14 files changed, 18 insertions(+), 15 deletions(-) rename practice/practice-02/src/assets/images/{offer/avatar-1-item-1.png => avatar/avatar-1.png} (100%) rename practice/practice-02/src/assets/images/{offer/avatar-2-item-1.png => avatar/avatar-2.png} (100%) rename practice/practice-02/src/assets/images/{offer/avatar-3-item-1.png => avatar/avatar-3.png} (100%) rename practice/practice-02/src/assets/images/{offer/avatar-1-item-2.png => avatar/avatar-4.png} (100%) rename practice/practice-02/src/assets/images/{offer/avatar-2-item-2.png => avatar/avatar-5.png} (100%) rename practice/practice-02/src/assets/images/{offer/avatar-3-item-2.png => avatar/avatar-6.png} (100%) rename practice/practice-02/src/assets/images/{offer/avatar-1-item-3.png => avatar/avatar-7.png} (100%) rename practice/practice-02/src/assets/images/{offer/avatar-2-item-3.png => avatar/avatar-8.png} (100%) rename practice/practice-02/src/assets/images/{offer/avatar-3-item-3.png => avatar/avatar-9.png} (100%) delete mode 100644 practice/practice-02/src/assets/images/offer/avatar-1-item-4.png delete mode 100644 practice/practice-02/src/assets/images/offer/avatar-2-item-4.png delete mode 100644 practice/practice-02/src/assets/images/offer/avatar-3-item-4.png diff --git a/practice/practice-02/src/assets/images/offer/avatar-1-item-1.png b/practice/practice-02/src/assets/images/avatar/avatar-1.png similarity index 100% rename from practice/practice-02/src/assets/images/offer/avatar-1-item-1.png rename to practice/practice-02/src/assets/images/avatar/avatar-1.png diff --git a/practice/practice-02/src/assets/images/offer/avatar-2-item-1.png b/practice/practice-02/src/assets/images/avatar/avatar-2.png similarity index 100% rename from practice/practice-02/src/assets/images/offer/avatar-2-item-1.png rename to practice/practice-02/src/assets/images/avatar/avatar-2.png diff --git a/practice/practice-02/src/assets/images/offer/avatar-3-item-1.png b/practice/practice-02/src/assets/images/avatar/avatar-3.png similarity index 100% rename from practice/practice-02/src/assets/images/offer/avatar-3-item-1.png rename to practice/practice-02/src/assets/images/avatar/avatar-3.png diff --git a/practice/practice-02/src/assets/images/offer/avatar-1-item-2.png b/practice/practice-02/src/assets/images/avatar/avatar-4.png similarity index 100% rename from practice/practice-02/src/assets/images/offer/avatar-1-item-2.png rename to practice/practice-02/src/assets/images/avatar/avatar-4.png diff --git a/practice/practice-02/src/assets/images/offer/avatar-2-item-2.png b/practice/practice-02/src/assets/images/avatar/avatar-5.png similarity index 100% rename from practice/practice-02/src/assets/images/offer/avatar-2-item-2.png rename to practice/practice-02/src/assets/images/avatar/avatar-5.png diff --git a/practice/practice-02/src/assets/images/offer/avatar-3-item-2.png b/practice/practice-02/src/assets/images/avatar/avatar-6.png similarity index 100% rename from practice/practice-02/src/assets/images/offer/avatar-3-item-2.png rename to practice/practice-02/src/assets/images/avatar/avatar-6.png diff --git a/practice/practice-02/src/assets/images/offer/avatar-1-item-3.png b/practice/practice-02/src/assets/images/avatar/avatar-7.png similarity index 100% rename from practice/practice-02/src/assets/images/offer/avatar-1-item-3.png rename to practice/practice-02/src/assets/images/avatar/avatar-7.png diff --git a/practice/practice-02/src/assets/images/offer/avatar-2-item-3.png b/practice/practice-02/src/assets/images/avatar/avatar-8.png similarity index 100% rename from practice/practice-02/src/assets/images/offer/avatar-2-item-3.png rename to practice/practice-02/src/assets/images/avatar/avatar-8.png diff --git a/practice/practice-02/src/assets/images/offer/avatar-3-item-3.png b/practice/practice-02/src/assets/images/avatar/avatar-9.png similarity index 100% rename from practice/practice-02/src/assets/images/offer/avatar-3-item-3.png rename to practice/practice-02/src/assets/images/avatar/avatar-9.png diff --git a/practice/practice-02/src/assets/images/offer/avatar-1-item-4.png b/practice/practice-02/src/assets/images/offer/avatar-1-item-4.png deleted file mode 100644 index bb4221ff09cb3f9b0c86dc0febef1958ed524c70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3390 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 diff --git a/practice/practice-02/src/assets/images/offer/avatar-3-item-4.png b/practice/practice-02/src/assets/images/offer/avatar-3-item-4.png deleted file mode 100644 index 974de73c4d1dda7ba0b743fe8ebc67f2c4bf4f73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3743 zcmV;Q4q)+#P)7WULC9V z_kF+L=lMR*^Q!nYRrAQmM}Kn_2?KF8guWQ^ile zrey!FY|pKpr@EC7DS+hi4c1u+g+jdY=4*s9F-8W@^Yd5VB$0^n)knU zFvh_>2iV@eof=n7=~iCZFA9T?f6|$%PXOeR%WGVhi@sAQdGg68Id$eV)_Nyjec(Q- z%WNzT4>2DIV{xzXH^Q zav4@YEvzi?z2ndFg?qnTaQ4Cwo{i1a zw>D7OSfzZ1-`c;MOd^GMZh=%Pg*Kl>Q_NvdtFRPB`@{F}6~|_(mSRL>0p{i=`0;B$ zz#m)#r-a38O6+|c2Gz%aQl3JQkN%M}^bYm$FW>(WZLN)TwRaIrhw<2JxN_+dpKEXD z!azUc<5Re+E2wkY5Ih9bI*NKTE^`?*Sv7fQCE9W=Ln||Mx9=cgHn5|iorC*7TRQeZ zk@dx!acDmR%CpWC=dTX&H_tuA#+n*z4mm__K0bSuOghfbp8E-R-L?~BTYIg6(!7PH#yT`k2Wq2;x5E zVI|@Bv$3|CbRv$?R)N*&MrAUgE)=meHn5}n0F9o_Xw636diMrd#}p&KImQktY+arl z<=Ovwg}t|T(Q46SG8oz1-p1hBVQfY#+nU>{={|xsnIz@AMnR<1%GYh1+bI)2b7-{K zt!3n*VKS*Sv6WTyg#w9qgjjfqq`E*d79uY86L7dOY4wb)E-~=@KeKJeUN*IERX{05 z{zOU2H41y)Kf#fs2Sgqn?`KnF#S)6e0tTxAttL;UN<(`^19f7QI#U_>Y?g_sS>z+A zk}2#l9g9)0#9=z31Q79-lW8%MrV*1wTLWnl9J6P zorWD98yS4RhhQvBP;8^DrJ3Q&lVm0qsB_h^GXZXw-R5`%Yo6x=d@Ghfa4DuAEx3E+in37z>k5C26cEClQI`TUfzZUM?A# zA}NgJBqPsBxoYd~B3|_4R~5xVns9B|%jULj3I!Fu3zG5mwOHaQGF8oVb6 zWFQ&BE7z_&cH)#L&PXe>S%Q6GagOn+G4kTp#)cZ|JoVJqH;~F?P*SqeVx*(VE$r2y zmB6+*>|9$25YH6Yu%{dM_FdF8*RniwNkU_utU-&lv6chxEoKSAuA{rr<+8l>)6;lQUuHHMA-ND@lf{Xq!pWFqUnUtPvbu;-e2A2E6jGv$ z5}Q`Hn=+9`S6)Gfrxv4L&Ey9o47~QAqzYObn>G_O7wH{%2fx@yWu1#H2Y0b*EmGCd zOjcMcEk#PDN4K|jwh|MU-Xh-OpP0bDZwrfJ5tn<0hy`P;POajocafS~mcS2_&q
gBdtwP zop)k%RiX+7OSnQefbHA6kFC-M`&MT#-}!k?ojuLD!4VQGF;S~PTAI%pX#(%6c9Tyg zFl5q%#jo_`X7WZ3nn0&#>C{D*-X0-c6p1C5XH+rFz66#|>2hNc z%B9#ZWRskH=L`k`os#$piK%zgRm;Y>ePsjPTH+u%;ok;Ai0{17w9^r2|cgIqQYZ zh{RzmDgaY)D#S`MVk0rh;+d&M>1vnd6Ox_L1iKC$DFN$M7+Y(I4t5>nFQ57jGuOQ0 zKPmR@+s}gZQnL#_EOrZ#Whp;$z}1Umtd4r=F4nM|ijrQwu< zX({eW*;!#ND04wr8pT*Jh}vLb@b!M8Qd^Y=Pz%UFK|bYB)3I|;30R+2y2f6qOWzgW_hv%VbNcw*P&La>FnCZ;Kdod$v7*8^x9pddB)!}hFv6e z2uF$!76e>Ic3f2;EWncS0#oxVT%Nr~t6#$vwLJV?w__9euSs0*z2h)-VnK?G%79$5 zix-qHzyCWA$xx9%V>R;n@i(}3Wt1;}?g+a)4XC6$)o8VB-n9d_r%FEvhWVjA2CD(8)%YR7xnd)nBx*arUbOgjF>smb=sA=MxU;CpHTaTCQ zLRrtqKGwZ+x83ZN5^?3U7-x>JZ|xu>zGaudESLDn%hQF$fYVZdvr;^j!6PdNo1|+^ zi_w~;E$UZ?nN?@0mB!m385$LkS^1pRV!|EC)98(o_-rTjm&BCsI6yHLN`n6T4JsA)fs7N zuE&xJt)R>c{}=UHA`&wqyojn2{tB{-+}YWV$)BX{zRwdf6|hJH;L?a4?7EGn&aM($ zFO&w78_qAkctWv`YIil?`PN@cGq2~|)d^_^GvYPNSfw)!h%*P0F-$qhBDZ!;wy@Mw zg%u^96xNg?s$PparR=K&mKbG0X3boliq00k``mN<;@{ptCt=Zl@e*65Vbn{Tv>sbe z-0b`}uX|+=Km2DYlhWQ)SecJV8Oj$iD^4%Hd&Vr!Byzf>1_o7GmNi-F9&&4O zr;%1knFkcGNnvsSfnB_PW{5L$GaUDOSq}QS=S%lb-(!4~F$LTU%J?tq zhYx@4Aq)~HluE`soYKf6Xn~9(Vl&7+if?s@0itk|B3Pi(BfUiVG7y2Cw+A88qlL8d{rbu;^6iB?i^b7QX!t z|436)Q%SyKAAL3OiNMyudAL5ED_2H`26^v$FJgYa2enA*+Aq`iVUJixhNY9?*x#^Y4|hNK2phL|mu{`p=X-zEYp7d&ai@%T50(JNy*}o8-y?E< zgs>`tt)+~y(Q|99wN7SHoAhKwOC`2i4||W^i&0vi^`)@%^v&7#|6U4v%Im4(um7s^ zvC@=%E9;gR`xubQEUJushq%t7vTuGltZYTDUgatb_3 0 + each avatar, index in food.avatarImageList + img( + src=avatar.avatarUrl, + alt="Avatar user rate", + class="avatar-" + index + ) .star-container img(src=offer_img_path + "star.png", alt="Star image") span.rate-point= "(" + food.ratePoint + ")" p.food-name= food.foodName p.food-description= food.foodDescription - a.order-btn.btn.no-underline(href="javascript:void(0)") Order now + a.order-btn.btn(href="javascript:void(0)") Order now diff --git a/practice/practice-02/src/layouts/offer.pug b/practice/practice-02/src/layouts/offer.pug index c108d0a..e4cc937 100644 --- a/practice/practice-02/src/layouts/offer.pug +++ b/practice/practice-02/src/layouts/offer.pug @@ -1,5 +1,11 @@ - var offer_img_path = "./assets/images/offer/"; -- var food_1 = []; +- var avatar_img_path = "./assets/images/avatar/"; + +- var food_1 = { imageUrl: offer_img_path + "food-1.png", price: "10", ratePoint: "4.5", foodName: "Kebab", foodDescription: "Lorem Ipsum is simply dummy text of the printing and typesetting industry", avatarImageList: [{ avatarUrl: avatar_img_path + "avatar-1.png" }, { avatarUrl: avatar_img_path + "avatar-2.png" }, { avatarUrl: avatar_img_path + "avatar-3.png" }] }; +- var food_2 = { imageUrl: offer_img_path + "food-2.png", price: "15", ratePoint: "4.8", foodName: "Chicken Tikka", foodDescription: "Lorem Ipsum is simply dummy text of the printing and typesetting industry", avatarImageList: [{ avatarUrl: avatar_img_path + "avatar-4.png" }, { avatarUrl: avatar_img_path + "avatar-5.png" }, { avatarUrl: avatar_img_path + "avatar-6.png" }] }; +- var food_3 = { imageUrl: offer_img_path + "food-3.png", price: "8", ratePoint: "4.2", foodName: "Desi Chowmein", foodDescription: "Lorem Ipsum is simply dummy text of the printing and typesetting industry", avatarImageList: [{ avatarUrl: avatar_img_path + "avatar-7.png" }, { avatarUrl: avatar_img_path + "avatar-8.png" }, { avatarUrl: avatar_img_path + "avatar-9.png" }] }; +- var food_4 = { imageUrl: offer_img_path + "food-4.png", price: "28", ratePoint: "5.0", foodName: "Chicken Chargha", foodDescription: "Lorem Ipsum is simply dummy text of the printing and typesetting industry", avatarImageList: [{ avatarUrl: avatar_img_path + "avatar-1.png" }, { avatarUrl: avatar_img_path + "avatar-2.png" }, { avatarUrl: avatar_img_path + "avatar-3.png" }] }; +- var list_food = [food_1, food_2, food_3, food_4]; section.offer .offer__container @@ -14,10 +20,8 @@ section.offer = " Offers" p.offer__description Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s .offer__card-list - +cardFoodItem({ no: "1", price: "10" , ratePoint: "4.5", foodName: "Kebab", foodDescription: "Lorem Ipsum is simply dummy text of the printing and typesetting industry", imageUrl: offer_img_path + "food-1.png"}) - +cardFoodItem({ no: "2", price: "15", ratePoint: "4.8", foodName: "Chicken Tikka", foodDescription: "Lorem Ipsum is simply dummy text of the printing and typesetting industry", imageUrl: offer_img_path + "food-2.png"}) - +cardFoodItem({ no: "3", price: "8", ratePoint: "4.2", foodName: "Desi Chowmein", foodDescription: "Lorem Ipsum is simply dummy text of the printing and typesetting industry", imageUrl: offer_img_path + "food-3.png"}) - +cardFoodItem({ no: "4", price: "28", ratePoint: "5.0", foodName: "Chicken Chargha", foodDescription: "Lorem Ipsum is simply dummy text of the printing and typesetting industry", imageUrl: offer_img_path + "food-4.png"}) + each val in list_food + +foodItemCard(val) .offer__rosemary-container picture source( From a82faf709eea73a2a8cc083da46aae2c10d9e9ad Mon Sep 17 00:00:00 2001 From: Loi Phan Date: Tue, 25 Jul 2023 09:26:48 +0700 Subject: [PATCH 10/15] Fix style for offers UI --- .../src/styles/abstracts/_mixins.scss | 6 +++++- .../src/styles/components/_card-item.scss | 14 ++++++------- .../src/styles/layouts/_header.scss | 4 ++-- .../src/styles/layouts/_navbar.scss | 2 +- .../src/styles/layouts/_offer.scss | 21 ++++++++----------- 5 files changed, 24 insertions(+), 23 deletions(-) diff --git a/practice/practice-02/src/styles/abstracts/_mixins.scss b/practice/practice-02/src/styles/abstracts/_mixins.scss index d5f760d..9771080 100644 --- a/practice/practice-02/src/styles/abstracts/_mixins.scss +++ b/practice/practice-02/src/styles/abstracts/_mixins.scss @@ -15,12 +15,16 @@ } @mixin flex-container( + $flex: false, $justify-content: null, $flex-direction: null, $align-items: null, $gap: null ) { - display: flex; + @if $flex != false { + display: flex; + } + @if $justify-content != null { justify-content: $justify-content; } diff --git a/practice/practice-02/src/styles/components/_card-item.scss b/practice/practice-02/src/styles/components/_card-item.scss index 2c99b45..a60ea48 100644 --- a/practice/practice-02/src/styles/components/_card-item.scss +++ b/practice/practice-02/src/styles/components/_card-item.scss @@ -1,5 +1,5 @@ .card-item { - @include flex-container($align-items: center, $flex-direction: column); + @include flex-container(true, $align-items: center, $flex-direction: column); @include size(auto, 516px); position: relative; @@ -12,7 +12,7 @@ } .price { - @include setAbsoluteAndLocation(true, $top: 176px, $right: 110px); + @include setAbsoluteAndLocation(true, $top: 176px, $right: 70px); @include size(52px, 52px); color: $white; @@ -27,11 +27,11 @@ .content-card { @include setAbsoluteAndLocation(true, $bottom: 60px); @include size(100%, auto); - @include flex-container($align-items: center, $flex-direction: column); + @include flex-container(true, $align-items: center, $flex-direction: column); } .rate { - @include flex-container($align-items: center, $gap: 10px); + @include flex-container(true, $align-items: center, $gap: 10px); } .avatar-container { @@ -40,17 +40,17 @@ } .avatar { - &-1 { + &-0 { @include setAbsoluteAndLocation(true, $left: 38px); z-index: 2; } - &-2 { + &-1 { @include setAbsoluteAndLocation(true, $left: 19px); z-index: 1; } - &-3 { + &-2 { @include setAbsoluteAndLocation(true, $left: 0); } } diff --git a/practice/practice-02/src/styles/layouts/_header.scss b/practice/practice-02/src/styles/layouts/_header.scss index 388638b..528e34d 100644 --- a/practice/practice-02/src/styles/layouts/_header.scss +++ b/practice/practice-02/src/styles/layouts/_header.scss @@ -11,7 +11,7 @@ } .header-container { - @include flex-container(space-between, $align-items: center); + @include flex-container(true, space-between, $align-items: center); position: relative; max-width: 428px; @@ -21,7 +21,7 @@ } .header-content { - @include flex-container(space-between); + @include flex-container(true, space-between); } @media screen and (min-width: 840px) { diff --git a/practice/practice-02/src/styles/layouts/_navbar.scss b/practice/practice-02/src/styles/layouts/_navbar.scss index d349b76..3194837 100644 --- a/practice/practice-02/src/styles/layouts/_navbar.scss +++ b/practice/practice-02/src/styles/layouts/_navbar.scss @@ -53,7 +53,7 @@ .nav-list { @include size(auto, auto); - @include flex-container(space-between, column); + @include flex-container(true, space-between, column); position: unset; flex-direction: row; diff --git a/practice/practice-02/src/styles/layouts/_offer.scss b/practice/practice-02/src/styles/layouts/_offer.scss index 797bd3d..a797e66 100644 --- a/practice/practice-02/src/styles/layouts/_offer.scss +++ b/practice/practice-02/src/styles/layouts/_offer.scss @@ -4,7 +4,11 @@ margin-inline: auto; &__container { - @include flex-container($justify-content: center, $flex-direction: column); + @include flex-container( + true, + $justify-content: center, + $flex-direction: column + ); max-width: 380px; margin: auto; @@ -36,10 +40,11 @@ } &__card-list { - display: grid; + @include flex-container(true, $gap: 70px); + + padding-inline: 35px; + flex-wrap: nowrap; padding-top: 65px; - grid-auto-flow: column; - grid-auto-columns: 100%; overflow-x: auto; -ms-overflow-style: none; scrollbar-width: none; @@ -72,14 +77,6 @@ flex-wrap: wrap; } } - - .price { - @include setAbsoluteAndLocation($top: 176px, $right: 70px); - } - - .food-image { - @include setAbsoluteAndLocation($top: 29px, $right: 55px); - } } @media screen and (min-width: 1200px) { From befc640757ee6a1ada8fb0b61a35917b780321b4 Mon Sep 17 00:00:00 2001 From: Loi Phan Date: Tue, 25 Jul 2023 11:17:15 +0700 Subject: [PATCH 11/15] Fix comments --- practice/practice-02/src/includes/mixins.pug | 6 +-- .../src/styles/abstracts/_mixins.scss | 2 +- .../src/styles/components/_card-item.scss | 25 ++++++------ .../src/styles/layouts/_header.scss | 2 +- .../src/styles/layouts/_offer.scss | 7 +++- .../src/styles/layouts/_welcome.scss | 38 +++++++++++-------- 6 files changed, 45 insertions(+), 35 deletions(-) diff --git a/practice/practice-02/src/includes/mixins.pug b/practice/practice-02/src/includes/mixins.pug index f6e01ac..4b47151 100644 --- a/practice/practice-02/src/includes/mixins.pug +++ b/practice/practice-02/src/includes/mixins.pug @@ -8,11 +8,7 @@ mixin foodItemCard(food) .avatar-container if food.avatarImageList && food.avatarImageList.length > 0 each avatar, index in food.avatarImageList - img( - src=avatar.avatarUrl, - alt="Avatar user rate", - class="avatar-" + index - ) + img.avatar(src=avatar.avatarUrl, alt="Avatar user rate") .star-container img(src=offer_img_path + "star.png", alt="Star image") span.rate-point= "(" + food.ratePoint + ")" diff --git a/practice/practice-02/src/styles/abstracts/_mixins.scss b/practice/practice-02/src/styles/abstracts/_mixins.scss index 9771080..ea14f18 100644 --- a/practice/practice-02/src/styles/abstracts/_mixins.scss +++ b/practice/practice-02/src/styles/abstracts/_mixins.scss @@ -52,7 +52,7 @@ } } -@mixin setAbsoluteAndLocation( +@mixin set-absolute-and-location( $absolute: false, $top: null, $left: null, diff --git a/practice/practice-02/src/styles/components/_card-item.scss b/practice/practice-02/src/styles/components/_card-item.scss index a60ea48..899d44f 100644 --- a/practice/practice-02/src/styles/components/_card-item.scss +++ b/practice/practice-02/src/styles/components/_card-item.scss @@ -6,13 +6,13 @@ } .food-image { - @include setAbsoluteAndLocation(true, $top: 29px); + @include set-absolute-and-location(true, $top: 29px); margin: auto; } .price { - @include setAbsoluteAndLocation(true, $top: 176px, $right: 70px); + @include set-absolute-and-location(true, $top: 176px, $right: 70px); @include size(52px, 52px); color: $white; @@ -25,7 +25,7 @@ } .content-card { - @include setAbsoluteAndLocation(true, $bottom: 60px); + @include set-absolute-and-location(true, $bottom: 60px); @include size(100%, auto); @include flex-container(true, $align-items: center, $flex-direction: column); } @@ -35,23 +35,26 @@ } .avatar-container { - position: relative; @include size(74px, 38px); + + position: relative; } .avatar { - &-0 { - @include setAbsoluteAndLocation(true, $left: 38px); + &:first-child { + @include set-absolute-and-location(true, $left: 38px); + z-index: 2; } - &-1 { - @include setAbsoluteAndLocation(true, $left: 19px); + &:nth-child(2) { + @include set-absolute-and-location(true, $left: 19px); + z-index: 1; } - &-2 { - @include setAbsoluteAndLocation(true, $left: 0); + &:last-child { + @include set-absolute-and-location(true, $left: 0); } } @@ -73,7 +76,7 @@ } .order-btn { - @include setAbsoluteAndLocation(true, $bottom: 0px); + @include set-absolute-and-location(true, $bottom: 0px); padding: 10px 20px; text-transform: capitalize; diff --git a/practice/practice-02/src/styles/layouts/_header.scss b/practice/practice-02/src/styles/layouts/_header.scss index 528e34d..7bf1d7c 100644 --- a/practice/practice-02/src/styles/layouts/_header.scss +++ b/practice/practice-02/src/styles/layouts/_header.scss @@ -1,5 +1,5 @@ .header { - @include setAbsoluteAndLocation( + @include set-absolute-and-location( $absolute: true, $top: 0, $right: 0, diff --git a/practice/practice-02/src/styles/layouts/_offer.scss b/practice/practice-02/src/styles/layouts/_offer.scss index a797e66..f29aa7c 100644 --- a/practice/practice-02/src/styles/layouts/_offer.scss +++ b/practice/practice-02/src/styles/layouts/_offer.scss @@ -17,7 +17,7 @@ } &__dot-background { - @include setAbsoluteAndLocation(true, $top: 168px, $left: 0px); + @include set-absolute-and-location(true, $top: 168px, $left: 0px); display: none; } @@ -48,13 +48,15 @@ overflow-x: auto; -ms-overflow-style: none; scrollbar-width: none; + &::-webkit-scrollbar { display: none; } } &__rosemary-container { - @include setAbsoluteAndLocation(true, $bottom: -120px, $right: 0); + @include set-absolute-and-location(true, $bottom: -120px, $right: 0); + z-index: 0; } } @@ -73,6 +75,7 @@ $gap: 18px, $justify-content: center ); + row-gap: 30px; flex-wrap: wrap; } diff --git a/practice/practice-02/src/styles/layouts/_welcome.scss b/practice/practice-02/src/styles/layouts/_welcome.scss index c6fcf80..703312c 100644 --- a/practice/practice-02/src/styles/layouts/_welcome.scss +++ b/practice/practice-02/src/styles/layouts/_welcome.scss @@ -29,18 +29,26 @@ } &__lines-background { - @include setAbsoluteAndLocation($absolute: true, $top: -76px, $right: 0); + @include set-absolute-and-location($absolute: true, $top: -76px, $right: 0); @include size(187px, 430px); } &__arrow-img-up { - @include setAbsoluteAndLocation($absolute: true, $top: -15px, $right: 50px); + @include set-absolute-and-location( + $absolute: true, + $top: -15px, + $right: 50px + ); @include size(43px, 215px); } &__mint-img { - @include setAbsoluteAndLocation($absolute: true, $bottom: 100px, $right: 0); + @include set-absolute-and-location( + $absolute: true, + $bottom: 100px, + $right: 0 + ); } // End banner @@ -59,7 +67,7 @@ } &__orange-img-wrapper { - @include setAbsoluteAndLocation($absolute: true, $top: 0, $right: 35px); + @include set-absolute-and-location($absolute: true, $top: 0, $right: 35px); } &__text-box { @@ -86,7 +94,7 @@ &__head-arrow-container { @include size(13px, 7.3px); - @include setAbsoluteAndLocation($absolute: true, $right: 107px); + @include set-absolute-and-location($absolute: true, $right: 107px); } &__heading { @@ -98,7 +106,7 @@ } &__underline-img-container { - @include setAbsoluteAndLocation( + @include set-absolute-and-location( $absolute: true, $bottom: -20px, $left: 0px @@ -241,13 +249,13 @@ } &__lines-background { - @include setAbsoluteAndLocation($top: -150px, $right: 0px); + @include set-absolute-and-location($top: -150px, $right: 0px); @include size(313px, 718px); } &__arrow-img-up { @include size(117px, 315px); - @include setAbsoluteAndLocation($top: -40px, $right: 5px); + @include set-absolute-and-location($top: -40px, $right: 5px); transition: 0.2s; } @@ -272,7 +280,7 @@ } &__orange-img-wrapper { - @include setAbsoluteAndLocation($top: 170px, $right: -50px); + @include set-absolute-and-location($top: 170px, $right: -50px); transition: 0.2s; } @@ -282,7 +290,7 @@ } &__underline-img-container { - @include setAbsoluteAndLocation($bottom: -25px, $left: 8px); + @include set-absolute-and-location($bottom: -25px, $left: 8px); } &__description { @@ -302,7 +310,7 @@ } &__arrow-down-img-wrapper { - @include setAbsoluteAndLocation( + @include set-absolute-and-location( $absolute: true, $top: -50px, $left: 220px @@ -318,7 +326,7 @@ &__slider-container { display: block; - @include setAbsoluteAndLocation( + @include set-absolute-and-location( $absolute: true, $bottom: -135px, $left: 65px @@ -336,15 +344,15 @@ } &__arrow-img-up { - @include setAbsoluteAndLocation($top: 8px, $right: 62px); + @include set-absolute-and-location($top: 8px, $right: 62px); } &__orange-img-wrapper { - @include setAbsoluteAndLocation($top: 110px, $right: -50px); + @include set-absolute-and-location($top: 110px, $right: -50px); } &__arrow-down-img-wrapper { - @include setAbsoluteAndLocation($top: -75px, $left: 230px); + @include set-absolute-and-location($top: -75px, $left: 230px); } } } From 3a0032ca4464f298048be21616eeee02d527dce9 Mon Sep 17 00:00:00 2001 From: Loi Phan Date: Tue, 25 Jul 2023 11:25:45 +0700 Subject: [PATCH 12/15] Format the file --- practice/practice-02/src/styles/layouts/_welcome.scss | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/practice/practice-02/src/styles/layouts/_welcome.scss b/practice/practice-02/src/styles/layouts/_welcome.scss index 703312c..81d5d11 100644 --- a/practice/practice-02/src/styles/layouts/_welcome.scss +++ b/practice/practice-02/src/styles/layouts/_welcome.scss @@ -12,6 +12,7 @@ &__container { @include flex-container(true, center, column); + margin: auto; max-width: 428px; padding-top: 117px; @@ -194,6 +195,7 @@ &__play-icon-wrapper { @include size(12px, 17px); + position: absolute; padding: 17.5px 20px; border-radius: 50px; @@ -250,12 +252,14 @@ &__lines-background { @include set-absolute-and-location($top: -150px, $right: 0px); + @include size(313px, 718px); } &__arrow-img-up { @include size(117px, 315px); @include set-absolute-and-location($top: -40px, $right: 5px); + transition: 0.2s; } From d9f7860e351dd503d093f05055a7b4bff9c54a2a Mon Sep 17 00:00:00 2001 From: Loi Phan Date: Tue, 25 Jul 2023 15:13:45 +0700 Subject: [PATCH 13/15] Refactor code --- practice/practice-02/src/layouts/nav-menu.pug | 4 +- practice/practice-02/src/layouts/welcome.pug | 2 +- .../src/styles/abstracts/_mixins.scss | 39 ++++++++----------- .../practice-02/src/styles/bases/_base.scss | 4 +- .../src/styles/components/_card-item.scss | 11 ++++-- .../src/styles/layouts/_header.scss | 5 ++- .../src/styles/layouts/_navbar.scss | 7 +++- .../src/styles/layouts/_offer.scss | 18 +++------ .../src/styles/layouts/_welcome.scss | 27 +++++++------ 9 files changed, 58 insertions(+), 59 deletions(-) diff --git a/practice/practice-02/src/layouts/nav-menu.pug b/practice/practice-02/src/layouts/nav-menu.pug index 5ffe22f..fad3302 100644 --- a/practice/practice-02/src/layouts/nav-menu.pug +++ b/practice/practice-02/src/layouts/nav-menu.pug @@ -6,5 +6,5 @@ nav.nav ul.nav-list each val in list li.nav-item - a.nav-link.no-underline(href="javascript:void(0)")= val -a.btn.nav-download-btn.no-underline(href="javascript:void(0)") Download App + a.nav-link.link-text(href="javascript:void(0)")= val +a.btn.nav-download-btn(href="javascript:void(0)") Download App diff --git a/practice/practice-02/src/layouts/welcome.pug b/practice/practice-02/src/layouts/welcome.pug index f23e2f7..641ae51 100644 --- a/practice/practice-02/src/layouts/welcome.pug +++ b/practice/practice-02/src/layouts/welcome.pug @@ -83,7 +83,7 @@ section.welcome ) .welcome__action-container a.welcome__download-btn.btn(href="javascript:void(0)") Download App - a.welcome__watch-video-link.no-underline(href="javascript:void(0)") + a.welcome__watch-video-link.link-text(href="javascript:void(0)") .welcome__play-icon-wrapper svg.welcome__play-icon( width="12", diff --git a/practice/practice-02/src/styles/abstracts/_mixins.scss b/practice/practice-02/src/styles/abstracts/_mixins.scss index ea14f18..0e26832 100644 --- a/practice/practice-02/src/styles/abstracts/_mixins.scss +++ b/practice/practice-02/src/styles/abstracts/_mixins.scss @@ -14,32 +14,27 @@ right: 0; } -@mixin flex-container( - $flex: false, - $justify-content: null, - $flex-direction: null, - $align-items: null, - $gap: null -) { - @if $flex != false { - display: flex; - } +@mixin d-flex { + display: flex; +} - @if $justify-content != null { - justify-content: $justify-content; - } +@mixin flex-justify-center-col { + @include d-flex; - @if $flex-direction != null { - flex-direction: $flex-direction; - } + justify-content: center; + flex-direction: column; +} - @if $align-items != null { - align-items: $align-items; - } +@mixin flex-align-center { + @include d-flex; - @if $gap != null { - gap: $gap; - } + align-items: center; +} + +@mixin flex-between { + @include d-flex; + + justify-content: space-between; } @mixin size($width: null, $height: null) { diff --git a/practice/practice-02/src/styles/bases/_base.scss b/practice/practice-02/src/styles/bases/_base.scss index 0be5e68..2652adf 100644 --- a/practice/practice-02/src/styles/bases/_base.scss +++ b/practice/practice-02/src/styles/bases/_base.scss @@ -1,4 +1,6 @@ -.no-underline { +.link-text { + font-size: $fs-md; + color: $black; text-decoration: none; } diff --git a/practice/practice-02/src/styles/components/_card-item.scss b/practice/practice-02/src/styles/components/_card-item.scss index 899d44f..23026f7 100644 --- a/practice/practice-02/src/styles/components/_card-item.scss +++ b/practice/practice-02/src/styles/components/_card-item.scss @@ -1,7 +1,8 @@ .card-item { - @include flex-container(true, $align-items: center, $flex-direction: column); + @include flex-align-center; @include size(auto, 516px); + flex-direction: column; position: relative; } @@ -27,11 +28,15 @@ .content-card { @include set-absolute-and-location(true, $bottom: 60px); @include size(100%, auto); - @include flex-container(true, $align-items: center, $flex-direction: column); + @include flex-align-center; + + flex-direction: column; } .rate { - @include flex-container(true, $align-items: center, $gap: 10px); + @include flex-align-center; + + gap: 10px; } .avatar-container { diff --git a/practice/practice-02/src/styles/layouts/_header.scss b/practice/practice-02/src/styles/layouts/_header.scss index 7bf1d7c..7f557ab 100644 --- a/practice/practice-02/src/styles/layouts/_header.scss +++ b/practice/practice-02/src/styles/layouts/_header.scss @@ -11,8 +11,9 @@ } .header-container { - @include flex-container(true, space-between, $align-items: center); + @include flex-align-center; + justify-content: space-between; position: relative; max-width: 428px; min-width: $min-width; @@ -21,7 +22,7 @@ } .header-content { - @include flex-container(true, space-between); + @include flex-between; } @media screen and (min-width: 840px) { diff --git a/practice/practice-02/src/styles/layouts/_navbar.scss b/practice/practice-02/src/styles/layouts/_navbar.scss index 3194837..6c0c48b 100644 --- a/practice/practice-02/src/styles/layouts/_navbar.scss +++ b/practice/practice-02/src/styles/layouts/_navbar.scss @@ -53,12 +53,14 @@ .nav-list { @include size(auto, auto); - @include flex-container(true, space-between, column); + @include flex-between; + flex-direction: column; + gap: 10px; position: unset; flex-direction: row; border: none; - max-width: 600px; + max-width: 660px; margin: unset; background-color: transparent; } @@ -66,6 +68,7 @@ .nav-item { border-bottom: none; padding: 0; + text-align: center; &:hover { background-color: unset; diff --git a/practice/practice-02/src/styles/layouts/_offer.scss b/practice/practice-02/src/styles/layouts/_offer.scss index f29aa7c..ef7e81a 100644 --- a/practice/practice-02/src/styles/layouts/_offer.scss +++ b/practice/practice-02/src/styles/layouts/_offer.scss @@ -4,11 +4,7 @@ margin-inline: auto; &__container { - @include flex-container( - true, - $justify-content: center, - $flex-direction: column - ); + @include flex-justify-center-col; max-width: 380px; margin: auto; @@ -40,8 +36,9 @@ } &__card-list { - @include flex-container(true, $gap: 70px); + @include d-flex; + gap: 70px; padding-inline: 35px; flex-wrap: nowrap; padding-top: 65px; @@ -70,12 +67,9 @@ } &__card-list { - @include flex-container( - $align-items: center, - $gap: 18px, - $justify-content: center - ); - + align-items: center; + gap: 18px; + justify-content: center; row-gap: 30px; flex-wrap: wrap; } diff --git a/practice/practice-02/src/styles/layouts/_welcome.scss b/practice/practice-02/src/styles/layouts/_welcome.scss index 81d5d11..c1ba8de 100644 --- a/practice/practice-02/src/styles/layouts/_welcome.scss +++ b/practice/practice-02/src/styles/layouts/_welcome.scss @@ -11,7 +11,7 @@ ); &__container { - @include flex-container(true, center, column); + @include flex-justify-center-col; margin: auto; max-width: 428px; @@ -20,7 +20,7 @@ // Start banner &__banner-container { @include size(428px, auto); - @include flex-container(true, center, column); + @include flex-justify-center-col; position: relative; } @@ -55,9 +55,10 @@ // Start content &__content { - @include flex-container(true, $flex-direction: column); + @include d-flex; @include size(calc(428px - 48px), auto); + flex-direction: column; position: relative; padding-top: 63.37px; padding-inline: 24px; @@ -72,9 +73,10 @@ } &__text-box { - @include flex-container(true, $align-items: center, $gap: 6px); + @include flex-align-center; @include size(fit-content); + gap: 6px; background-color: #feeae9; border-radius: 100px; padding: 6px; @@ -123,7 +125,7 @@ } &__search-form { - @include flex-container(true); + @include d-flex; margin-top: 32px; border-radius: 100px; @@ -165,7 +167,7 @@ } &__action-container { - @include flex-container(true, $justify-content: space-between); + @include flex-between; width: 100%; margin-top: 44px; @@ -173,10 +175,10 @@ } &__watch-video-link { - @include flex-container(true, $align-items: center, $gap: 21px); + @include flex-align-center; position: relative; - + gap: 21px; &:hover { .welcome__play-icon-wrapper { transform: scale(1.2); @@ -232,12 +234,9 @@ @media screen and (min-width: 840px) { .welcome { &__container { - @include flex-container( - $flex-direction: row-reverse, - $align-items: center, - $justify-content: space-between - ); - + flex-direction: row-reverse; + align-items: center; + justify-content: space-between; padding-top: 130px; width: 100%; max-width: $max-width; From 965e221714cbb8fc0cb87a664ac8e92904fecd3f Mon Sep 17 00:00:00 2001 From: Loi Phan Date: Tue, 25 Jul 2023 15:18:13 +0700 Subject: [PATCH 14/15] Format code --- practice/practice-02/src/styles/layouts/_welcome.scss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/practice/practice-02/src/styles/layouts/_welcome.scss b/practice/practice-02/src/styles/layouts/_welcome.scss index 81d5d11..cdb218e 100644 --- a/practice/practice-02/src/styles/layouts/_welcome.scss +++ b/practice/practice-02/src/styles/layouts/_welcome.scss @@ -40,7 +40,6 @@ $top: -15px, $right: 50px ); - @include size(43px, 215px); } @@ -252,7 +251,6 @@ &__lines-background { @include set-absolute-and-location($top: -150px, $right: 0px); - @include size(313px, 718px); } @@ -278,6 +276,7 @@ // Start content &__content { @include size(auto, auto); + padding-left: 70px; padding-right: 0px; max-width: 560px; @@ -285,6 +284,7 @@ &__orange-img-wrapper { @include set-absolute-and-location($top: 170px, $right: -50px); + transition: 0.2s; } From 05f6415676f01754a145f066acf14ce1e12cfeb0 Mon Sep 17 00:00:00 2001 From: Loi Phan Date: Thu, 27 Jul 2023 09:57:36 +0700 Subject: [PATCH 15/15] Change method refactor --- .../src/styles/abstracts/_mixins.scss | 54 +++++++------ .../src/styles/components/_card-item.scss | 38 +++++---- .../src/styles/components/_toggle-menu.scss | 2 +- .../src/styles/layouts/_header.scss | 19 +++-- .../src/styles/layouts/_navbar.scss | 8 +- .../src/styles/layouts/_offer.scss | 25 +++--- .../src/styles/layouts/_welcome.scss | 80 +++++++++---------- 7 files changed, 121 insertions(+), 105 deletions(-) diff --git a/practice/practice-02/src/styles/abstracts/_mixins.scss b/practice/practice-02/src/styles/abstracts/_mixins.scss index 0e26832..b0fa2d4 100644 --- a/practice/practice-02/src/styles/abstracts/_mixins.scss +++ b/practice/practice-02/src/styles/abstracts/_mixins.scss @@ -1,3 +1,11 @@ +%d-flex { + display: flex; +} + +%absolute { + position: absolute; +} + @mixin base-icon-menu { @include size(36px, 3px); @@ -8,33 +16,38 @@ @mixin icon-menu { @include base-icon-menu; + @extend %absolute; content: ""; - position: absolute; right: 0; } -@mixin d-flex { - display: flex; -} +@mixin flex-layout( + $justify: null, + $align: null, + $direction: null, + $gap: null, + $wrap: null +) { + @if $justify != null { + justify-content: $justify; + } -@mixin flex-justify-center-col { - @include d-flex; + @if $align != null { + align-items: $align; + } - justify-content: center; - flex-direction: column; -} + @if $direction != null { + flex-direction: $direction; + } -@mixin flex-align-center { - @include d-flex; + @if $gap != null { + gap: $gap; + } - align-items: center; -} - -@mixin flex-between { - @include d-flex; - - justify-content: space-between; + @if $wrap != null { + flex-wrap: $wrap; + } } @mixin size($width: null, $height: null) { @@ -48,16 +61,11 @@ } @mixin set-absolute-and-location( - $absolute: false, $top: null, $left: null, $right: null, $bottom: null ) { - @if $absolute { - position: absolute; - } - @if $top != null { top: $top; } diff --git a/practice/practice-02/src/styles/components/_card-item.scss b/practice/practice-02/src/styles/components/_card-item.scss index 23026f7..2d80572 100644 --- a/practice/practice-02/src/styles/components/_card-item.scss +++ b/practice/practice-02/src/styles/components/_card-item.scss @@ -1,19 +1,24 @@ +%align-center-col { + @include flex-layout($align: center, $direction: column); +} + .card-item { - @include flex-align-center; + @extend %d-flex, %align-center-col; @include size(auto, 516px); - flex-direction: column; position: relative; } .food-image { - @include set-absolute-and-location(true, $top: 29px); + @extend %absolute; + @include set-absolute-and-location($top: 29px); margin: auto; } .price { - @include set-absolute-and-location(true, $top: 176px, $right: 70px); + @extend %absolute; + @include set-absolute-and-location($top: 176px, $right: 70px); @include size(52px, 52px); color: $white; @@ -26,17 +31,18 @@ } .content-card { - @include set-absolute-and-location(true, $bottom: 60px); + @extend %d-flex, %align-center-col, %absolute; + @include set-absolute-and-location($bottom: 60px); @include size(100%, auto); - @include flex-align-center; - - flex-direction: column; } .rate { - @include flex-align-center; + @extend %d-flex; + @include flex-layout($align: center, $gap: 10px); +} - gap: 10px; +.star-container { + @include size(24px, 22px); } .avatar-container { @@ -47,19 +53,22 @@ .avatar { &:first-child { - @include set-absolute-and-location(true, $left: 38px); + @extend %absolute; + @include set-absolute-and-location($left: 38px); z-index: 2; } &:nth-child(2) { - @include set-absolute-and-location(true, $left: 19px); + @extend %absolute; + @include set-absolute-and-location($left: 19px); z-index: 1; } &:last-child { - @include set-absolute-and-location(true, $left: 0); + @extend %absolute; + @include set-absolute-and-location($left: 0); } } @@ -81,7 +90,8 @@ } .order-btn { - @include set-absolute-and-location(true, $bottom: 0px); + @extend %absolute; + @include set-absolute-and-location($bottom: 0px); padding: 10px 20px; text-transform: capitalize; diff --git a/practice/practice-02/src/styles/components/_toggle-menu.scss b/practice/practice-02/src/styles/components/_toggle-menu.scss index 57cd366..74e7ceb 100644 --- a/practice/practice-02/src/styles/components/_toggle-menu.scss +++ b/practice/practice-02/src/styles/components/_toggle-menu.scss @@ -18,9 +18,9 @@ } .toggle-menu { + @extend %absolute; @include size(36px, 27px); - position: absolute; top: 46px; right: 21px; cursor: pointer; diff --git a/practice/practice-02/src/styles/layouts/_header.scss b/practice/practice-02/src/styles/layouts/_header.scss index 7f557ab..9f71f26 100644 --- a/practice/practice-02/src/styles/layouts/_header.scss +++ b/practice/practice-02/src/styles/layouts/_header.scss @@ -1,17 +1,14 @@ .header { - @include set-absolute-and-location( - $absolute: true, - $top: 0, - $right: 0, - $left: 0 - ); + @extend %absolute; + @include set-absolute-and-location($top: 0, $right: 0, $left: 0); max-width: 428px; margin: auto; } .header-container { - @include flex-align-center; + @extend %d-flex; + @include flex-layout($align: center); justify-content: space-between; position: relative; @@ -22,7 +19,8 @@ } .header-content { - @include flex-between; + @extend %d-flex; + @include flex-layout($justify: space-between); } @media screen and (min-width: 840px) { @@ -31,17 +29,18 @@ } .header-container { + @include flex-layout($gap: 10px); + padding-top: 32px; padding-left: 70px; padding-right: 61px; - gap: 10px; max-width: 1309px; } .header-content { + @include flex-layout($gap: 10px); @include size(100%, auto); - gap: 10px; max-width: 918px; } } diff --git a/practice/practice-02/src/styles/layouts/_navbar.scss b/practice/practice-02/src/styles/layouts/_navbar.scss index 6c0c48b..70ab433 100644 --- a/practice/practice-02/src/styles/layouts/_navbar.scss +++ b/practice/practice-02/src/styles/layouts/_navbar.scss @@ -1,10 +1,10 @@ .nav-list { + @extend %absolute; @include size(max-content, auto); display: none; list-style: none; transition: 0.1s; - position: absolute; border: 2px solid $primary-color; top: 100px; right: 25px; @@ -53,12 +53,10 @@ .nav-list { @include size(auto, auto); - @include flex-between; + @include flex-layout($justify: space-between, $direction: row, $gap: 10px); - flex-direction: column; - gap: 10px; + display: flex; position: unset; - flex-direction: row; border: none; max-width: 660px; margin: unset; diff --git a/practice/practice-02/src/styles/layouts/_offer.scss b/practice/practice-02/src/styles/layouts/_offer.scss index ef7e81a..0c33500 100644 --- a/practice/practice-02/src/styles/layouts/_offer.scss +++ b/practice/practice-02/src/styles/layouts/_offer.scss @@ -4,7 +4,8 @@ margin-inline: auto; &__container { - @include flex-justify-center-col; + @extend %d-flex; + @include flex-layout($justify: center, $direction: column); max-width: 380px; margin: auto; @@ -13,7 +14,8 @@ } &__dot-background { - @include set-absolute-and-location(true, $top: 168px, $left: 0px); + @extend %absolute; + @include set-absolute-and-location($top: 168px, $left: 0px); display: none; } @@ -36,11 +38,10 @@ } &__card-list { - @include d-flex; + @extend %d-flex; + @include flex-layout($wrap: nowrap, $gap: 70px); - gap: 70px; padding-inline: 35px; - flex-wrap: nowrap; padding-top: 65px; overflow-x: auto; -ms-overflow-style: none; @@ -52,7 +53,8 @@ } &__rosemary-container { - @include set-absolute-and-location(true, $bottom: -120px, $right: 0); + @extend %absolute; + @include set-absolute-and-location($bottom: -120px, $right: 0); z-index: 0; } @@ -67,11 +69,14 @@ } &__card-list { - align-items: center; - gap: 18px; - justify-content: center; + @include flex-layout( + $align: center, + $justify: center, + $wrap: wrap, + $gap: 18px + ); + row-gap: 30px; - flex-wrap: wrap; } } } diff --git a/practice/practice-02/src/styles/layouts/_welcome.scss b/practice/practice-02/src/styles/layouts/_welcome.scss index 499bc69..c0a6825 100644 --- a/practice/practice-02/src/styles/layouts/_welcome.scss +++ b/practice/practice-02/src/styles/layouts/_welcome.scss @@ -11,7 +11,8 @@ ); &__container { - @include flex-justify-center-col; + @extend %d-flex; + @include flex-layout($justify: center, $direction: column); margin: auto; max-width: 428px; @@ -19,8 +20,9 @@ } // Start banner &__banner-container { + @extend %d-flex; @include size(428px, auto); - @include flex-justify-center-col; + @include flex-layout($justify: center, $direction: column); position: relative; } @@ -30,52 +32,50 @@ } &__lines-background { - @include set-absolute-and-location($absolute: true, $top: -76px, $right: 0); + @extend %absolute; + @include set-absolute-and-location($top: -76px, $right: 0); @include size(187px, 430px); } &__arrow-img-up { - @include set-absolute-and-location( - $absolute: true, - $top: -15px, - $right: 50px - ); + @extend %absolute; + @include set-absolute-and-location($top: -15px, $right: 50px); @include size(43px, 215px); } &__mint-img { - @include set-absolute-and-location( - $absolute: true, - $bottom: 100px, - $right: 0 - ); + @extend %absolute; + @include set-absolute-and-location($bottom: 100px, $right: 0); } // End banner // Start content &__content { - @include d-flex; @include size(calc(428px - 48px), auto); + @extend %d-flex; + @include flex-layout($direction: column); - flex-direction: column; position: relative; padding-top: 63.37px; padding-inline: 24px; } &__arrow-down-img-wrapper { + @extend %absolute; + display: none; } &__orange-img-wrapper { - @include set-absolute-and-location($absolute: true, $top: 0, $right: 35px); + @extend %absolute; + @include set-absolute-and-location($top: 0, $right: 35px); } &__text-box { - @include flex-align-center; + @extend %d-flex; + @include flex-layout($align: center, $gap: 6px); @include size(fit-content); - gap: 6px; background-color: #feeae9; border-radius: 100px; padding: 6px; @@ -96,7 +96,8 @@ &__head-arrow-container { @include size(13px, 7.3px); - @include set-absolute-and-location($absolute: true, $right: 107px); + @extend %absolute; + @include set-absolute-and-location($right: 107px); } &__heading { @@ -108,11 +109,8 @@ } &__underline-img-container { - @include set-absolute-and-location( - $absolute: true, - $bottom: -20px, - $left: 0px - ); + @extend %absolute; + @include set-absolute-and-location($bottom: -20px, $left: 0px); } &__description { @@ -124,7 +122,7 @@ } &__search-form { - @include d-flex; + @extend %d-flex; margin-top: 32px; border-radius: 100px; @@ -166,7 +164,8 @@ } &__action-container { - @include flex-between; + @extend %d-flex; + @include flex-layout($justify: space-between, $gap: 10px); width: 100%; margin-top: 44px; @@ -174,10 +173,10 @@ } &__watch-video-link { - @include flex-align-center; + @extend %d-flex; + @include flex-layout($align: center, $gap: 21px); position: relative; - gap: 21px; &:hover { .welcome__play-icon-wrapper { transform: scale(1.2); @@ -195,9 +194,9 @@ } &__play-icon-wrapper { + @extend %absolute; @include size(12px, 17px); - position: absolute; padding: 17.5px 20px; border-radius: 50px; background-color: $white; @@ -221,6 +220,8 @@ } &__slider-container { + @extend %absolute; + display: none; } // End content @@ -233,9 +234,12 @@ @media screen and (min-width: 840px) { .welcome { &__container { - flex-direction: row-reverse; - align-items: center; - justify-content: space-between; + @include flex-layout( + $direction: row-reverse, + $align: center, + $justify: space-between + ); + padding-top: 130px; width: 100%; max-width: $max-width; @@ -313,11 +317,7 @@ } &__arrow-down-img-wrapper { - @include set-absolute-and-location( - $absolute: true, - $top: -50px, - $left: 220px - ); + @include set-absolute-and-location($top: -50px, $left: 220px); display: block; transition: 0.2s; @@ -329,11 +329,7 @@ &__slider-container { display: block; - @include set-absolute-and-location( - $absolute: true, - $bottom: -135px, - $left: 65px - ); + @include set-absolute-and-location($bottom: -135px, $left: 65px); } // End content