diff --git a/src/app/shared/components/cart-item/cart-item.component.html b/src/app/shared/components/cart-item/cart-item.component.html index 6827310..d4c8722 100644 --- a/src/app/shared/components/cart-item/cart-item.component.html +++ b/src/app/shared/components/cart-item/cart-item.component.html @@ -1,45 +1,47 @@ -
-
+
+
@if (discountPercentage() && discountPercentage()! > 0) { - -{{ discountPercentage() }}% + -{{ discountPercentage() }}% } @if (imageUrl()) { - + } @else { - + }
-
-
-

{{ product() }}

+
+
+

{{ product() }}

-
+
@if (formattedOriginalPrice(); as originalPrice) { - {{ originalPrice }} + {{ originalPrice }} } - {{ formattedDiscountedPrice() }} + {{ formattedDiscountedPrice() }}
-
+
@for (attribute of attributes(); track attribute.label + attribute.value) { -
- {{ attribute.label }}: - {{ attribute.value }} +
+ {{ attribute.label }}: + {{ attribute.value }}
}
-
+ + diff --git a/src/app/shared/components/cart-item/cart-item.component.scss b/src/app/shared/components/cart-item/cart-item.component.scss index 80edcbe..a13197a 100644 --- a/src/app/shared/components/cart-item/cart-item.component.scss +++ b/src/app/shared/components/cart-item/cart-item.component.scss @@ -1,160 +1,116 @@ :host { display: block; + --item-media-width: 64px; + --item-media-height: 72px; +} + +@media (max-width: 420px) { + :host { + --item-media-width: 56px; + --item-media-height: 64px; + } } .cart-item { display: grid; - grid-template-columns: 64px minmax(0, 1fr); + grid-template-columns: var(--item-media-width) minmax(0, 1fr); gap: 0.75rem; padding: 10px 12px; - border-radius: 0; background-color: #f5f5f5; - - &__media { - position: relative; - width: 64px; - height: 72px; - overflow: hidden; - border-radius: 6px 0 0 6px; - background-color: #d9d9d9; - } - - &__image { - width: 100%; - height: 100%; - object-fit: cover; - display: block; - } - - &__image--placeholder { - background: linear-gradient(135deg, #d2d2d2, #ececec); - } - - &__discount-badge { - position: absolute; - top: 0; - left: 0; - z-index: 1; - padding: 2px 5px; - border-bottom-right-radius: 4px; - background-color: #6173ff; - color: #ffffff; - font-size: 8px; - font-weight: 500; - line-height: 1; - } - - &__content { - display: grid; - gap: 0.5rem; - min-width: 0; - } - - &__top-row { - display: grid; - grid-template-columns: minmax(0, 1fr) auto; - gap: 0.75rem; - align-items: start; - } - - &__product { - margin: 0; - color: #666666; - font-size: 12px; - font-weight: 325; - line-height: 1.25; - text-transform: uppercase; - } - - &__prices { - display: grid; - justify-items: end; - white-space: nowrap; - line-height: 1.1; - } - - &__price { - color: #a0a0a0; - } - - &__price--original { - font-size: 10px; - font-weight: 325; - text-decoration: line-through; - } - - &__price--discounted { - font-size: 13px; - font-weight: 425; - } - - &__attributes { - display: grid; - gap: 0.125rem; - } - - &__attribute { - color: #666666; - font-size: 11px; - line-height: 1.2; - } - - &__attribute-label { - font-weight: 325; - } - - &__attribute-value { - font-weight: 700; - } - - &__actions { - display: flex; - justify-content: flex-end; - align-items: center; - gap: 0.125rem; - margin-top: auto; - } - - &__quantity-control, - &__quantity { - display: inline-flex; - align-items: center; - justify-content: center; - width: 18px; - height: 18px; - border: 1px solid #cfcfcf; - background-color: #ffffff; - color: #666666; - font-size: 10px; - line-height: 1; - } - - &__quantity-control { - padding: 0; - } - - &__remove { - display: inline-flex; - align-items: center; - justify-content: center; - width: 18px; - height: 18px; - margin-left: 0.35rem; - padding: 0; - border: 0; - background: transparent; - color: #b3b3b3; - font-size: 12px; - } } -@media (max-width: 420px) { - .cart-item { - grid-template-columns: 56px minmax(0, 1fr); - - &__media { - width: 56px; - height: 64px; - } - } +.cart-item-media { + width: var(--item-media-width); + height: var(--item-media-height); + border-radius: 6px 0 0 6px; + background-color: #d9d9d9; +} + +.cart-item-discount-badge { + padding: 2px 5px; + border-bottom-right-radius: 4px; + background-color: #6173ff; + color: #ffffff; + font-size: 8px; + font-weight: 500; + line-height: 1; +} + +.cart-item-placeholder { + background: linear-gradient(135deg, #d2d2d2, #ececec); +} + +.cart-item-content { + gap: 0.5rem; +} + +.cart-item-top-row { + grid-template-columns: minmax(0, 1fr) auto; + gap: 0.75rem; +} + +.cart-item-product { + color: #666666; + font-size: 12px; + line-height: 1.25; + font-weight: 325; +} + +.cart-item-prices { + display: grid; + justify-items: end; + line-height: 1.1; +} + +.cart-item-original-price { + color: #a0a0a0; + font-size: 10px; + font-weight: 325; +} + +.cart-item-discounted-price { + color: #a0a0a0; + font-size: 13px; + font-weight: 425; +} + +.cart-item-attributes { + gap: 0.125rem; +} + +.cart-item-attribute { + color: #666666; + font-size: 11px; + line-height: 1.2; +} + +.cart-item-attribute-label { + font-weight: 325; +} + +.cart-item-actions { + gap: 0.125rem; +} + +.cart-item-qty-btn, +.cart-item-qty-value { + width: 18px; + height: 18px; + border-color: #cfcfcf !important; + color: #666666; + font-size: 10px; + line-height: 1; +} + +.cart-item-qty-btn { + padding: 0; +} + +.cart-item-remove-btn { + width: 18px; + height: 18px; + margin-left: 0.35rem; + padding: 0; + color: #b3b3b3; + font-size: 12px; } diff --git a/src/app/shared/components/cart/cart.component.html b/src/app/shared/components/cart/cart.component.html index 0a9c595..41a0220 100644 --- a/src/app/shared/components/cart/cart.component.html +++ b/src/app/shared/components/cart/cart.component.html @@ -1,15 +1,15 @@ -
-
-

{{ title() }}

+
+
+

{{ title() }}

@if (showClose()) { - }
-
+
@for (item of items(); track item.product + item.discountedPrice) { -
+ + diff --git a/src/app/shared/components/cart/cart.component.scss b/src/app/shared/components/cart/cart.component.scss index 240b94c..e693721 100644 --- a/src/app/shared/components/cart/cart.component.scss +++ b/src/app/shared/components/cart/cart.component.scss @@ -5,102 +5,57 @@ height: 100%; } -.cart { - display: grid; - grid-template-rows: auto minmax(0, 1fr) auto; - width: 100%; - height: 100%; - color: #666666; - border-radius: 0; - overflow: hidden; +.cart-header { + padding: 12px 8px 0 24px; +} - &__header, - &__summary { - background-color: inherit; - } +.cart-title { + color: #a0a0a0; + font-size: 13px; + letter-spacing: 0.04em; +} - &__header { - display: flex; - align-items: center; - justify-content: space-between; - padding: 12px 8px 0 24px; - } +.cart-close-btn { + width: 24px; + height: 24px; + font-size: 14px; + color: #a0a0a0; +} - &__title { - margin: 0; - color: #a0a0a0; - font-size: 13px; - font-weight: 700; - letter-spacing: 0.04em; - } +.cart-items-container { + min-height: 0; + padding: 0 0 0 24px; + scrollbar-color: #d5d5d5 transparent; + scrollbar-width: thin; - &__close { - display: inline-flex; - align-items: center; - justify-content: center; - width: 24px; - height: 24px; - padding: 0; - border: 0; - background: transparent; - color: #a0a0a0; - font-size: 14px; - } - - &__items { - display: grid; - gap: 8px; - min-height: 0; - padding: 0 0 0 24px; - overflow-y: auto; - scrollbar-color: #d5d5d5 transparent; - scrollbar-width: thin; - } - - &__items::-webkit-scrollbar { + &::-webkit-scrollbar { width: 6px; } - &__items::-webkit-scrollbar-thumb { + &::-webkit-scrollbar-thumb { border-radius: 999px; background-color: #d5d5d5; } - - &__summary { - display: grid; - gap: 0.35rem; - padding: 8px 22px 14px 24px; - } - - &__summary-row { - display: flex; - align-items: baseline; - justify-content: space-between; - gap: 1rem; - } - - &__summary-label, - &__summary-value { - color: #a0a0a0; - font-size: 13px; - } - - &__summary-label { - font-weight: 325; - } - - &__summary-value { - font-weight: 700; - } - - &__summary-row--total { - margin-top: 0.2rem; - } - - &__summary-row--total .cart__summary-label, - &__summary-row--total .cart__summary-value { - color: #666666; - font-size: 15px; - font-weight: 700; - } +} + +.cart-footer { + padding: 8px 22px 14px 24px; +} + +.cart-summary-text-muted { + color: #a0a0a0; + font-size: 13px; + font-weight: 325; +} + +.cart-summary-text-muted-bold { + color: #a0a0a0; + font-size: 13px; + font-weight: 700; +} + +.cart-total-text { + color: #666666; + font-size: 15px; + font-weight: 700; }