feat(front-end): shop category ui
This commit is contained in:
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
<div class="container shop-layout">
|
<div class="container shop-layout">
|
||||||
<aside class="shop-sidebar">
|
<aside class="shop-sidebar">
|
||||||
<app-card>
|
<app-card class="category-card">
|
||||||
<div class="panel-head">
|
<div class="panel-head">
|
||||||
<div>
|
<div>
|
||||||
<p class="panel-kicker">
|
<p class="panel-kicker">
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
[class.active]="!currentCategorySlug()"
|
[class.active]="!currentCategorySlug()"
|
||||||
(click)="navigateToCategory()"
|
(click)="navigateToCategory()"
|
||||||
>
|
>
|
||||||
<span>{{ "SHOP.ALL_CATEGORIES" | translate }}</span>
|
<span class="category-name">{{ "SHOP.ALL_CATEGORIES" | translate }}</span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<div class="category-list">
|
<div class="category-list">
|
||||||
@@ -44,8 +44,8 @@
|
|||||||
[style.--depth]="node.depth"
|
[style.--depth]="node.depth"
|
||||||
(click)="navigateToCategory(node.slug)"
|
(click)="navigateToCategory(node.slug)"
|
||||||
>
|
>
|
||||||
<span>{{ node.name }}</span>
|
<span class="category-name">{{ node.name }}</span>
|
||||||
<small>{{ node.productCount }}</small>
|
<small class="category-count">{{ node.productCount }}</small>
|
||||||
</button>
|
</button>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -44,40 +44,70 @@
|
|||||||
font-size: 1.1rem;
|
font-size: 1.1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.category-card {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
.category-list {
|
.category-list {
|
||||||
display: grid;
|
display: grid;
|
||||||
gap: 0.4rem;
|
gap: 0.45rem;
|
||||||
|
margin-top: var(--space-2);
|
||||||
}
|
}
|
||||||
|
|
||||||
.category-link {
|
.category-link {
|
||||||
--depth: 0;
|
--depth: 0;
|
||||||
|
position: relative;
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 100%;
|
width: calc(100% - (var(--depth) * 0.7rem));
|
||||||
|
margin-left: calc(var(--depth) * 0.7rem);
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
gap: var(--space-3);
|
gap: var(--space-2);
|
||||||
padding: 0.8rem 0.95rem 0.8rem calc(0.95rem + (var(--depth) * 0.95rem));
|
min-height: 2.8rem;
|
||||||
border: 1px solid transparent;
|
padding: 0.55rem 0.75rem;
|
||||||
border-radius: 0.9rem;
|
border: 1px solid rgba(16, 24, 32, 0.1);
|
||||||
background: transparent;
|
border-radius: 0.8rem;
|
||||||
|
background: #fff;
|
||||||
color: var(--color-text);
|
color: var(--color-text);
|
||||||
text-align: left;
|
text-align: left;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
transition:
|
transition:
|
||||||
background-color 0.18s ease,
|
background-color 0.16s ease,
|
||||||
border-color 0.18s ease,
|
border-color 0.16s ease,
|
||||||
transform 0.18s ease;
|
box-shadow 0.16s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.category-link:hover {
|
||||||
|
background: rgba(16, 24, 32, 0.03);
|
||||||
|
border-color: rgba(16, 24, 32, 0.14);
|
||||||
}
|
}
|
||||||
|
|
||||||
.category-link:hover,
|
|
||||||
.category-link.active {
|
.category-link.active {
|
||||||
background: rgba(250, 207, 10, 0.12);
|
background: color-mix(in srgb, var(--color-brand) 14%, #fff);
|
||||||
border-color: rgba(16, 24, 32, 0.12);
|
border-color: color-mix(in srgb, var(--color-brand) 42%, #d6dbe4);
|
||||||
transform: translateX(1px);
|
box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-brand) 35%, #fff);
|
||||||
}
|
}
|
||||||
|
|
||||||
.category-link small {
|
.category-name {
|
||||||
|
min-width: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
font-size: 0.97rem;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
.category-count {
|
||||||
|
display: inline-flex;
|
||||||
|
min-width: 1.6rem;
|
||||||
|
height: 1.6rem;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
border-radius: 999px;
|
||||||
|
background: rgba(16, 24, 32, 0.06);
|
||||||
color: var(--color-text-muted);
|
color: var(--color-text-muted);
|
||||||
|
font-size: 0.8rem;
|
||||||
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cart-card {
|
.cart-card {
|
||||||
|
|||||||
Reference in New Issue
Block a user