|
4 | 4 | <Header /> |
5 | 5 | <div role="tablist" class="mb-4 flex max-w-full flex-col items-stretch"> |
6 | 6 | <div class="flex flex-row flex-nowrap items-center gap-4"> |
7 | | - <div class="flex flex-shrink flex-grow flex-col font-medium text-neutral-300"> |
| 7 | + <div class="flex flex-shrink flex-grow flex-col text-sm font-semibold text-neutral-600 dark:text-neutral-200"> |
8 | 8 | <form |
9 | | - class="group flex h-10 flex-grow rounded-xl border border-transparent bg-white/10 pl-4 pr-3 transition-all focus-within:border-neutral-600 focus-within:bg-neutral-800/30 hover:border-neutral-600"> |
| 9 | + class="group flex h-10 flex-grow rounded-xl border border-transparent bg-neutral-800/5 dark:bg-white/10 pl-4 pr-3 transition-all focus-within:border-neutral-400 focus-within:dark:border-neutral-600 focus-within:bg-white/30 focus-within:dark:bg-neutral-800/30 hover:border-neutral-300 hover:focus-within:border-neutral-400 hover:dark:border-neutral-600"> |
10 | 10 | <div class="flex w-full items-center gap-4"> |
11 | | - <div class="flex text-neutral-500"> |
12 | | - <Icon name="majesticons:search-line" size="22"></Icon> |
| 11 | + <div class="flex text-neutral-500 dark:text-neutral-400"> |
| 12 | + <Icon name="majesticons:search-line" size="20"></Icon> |
13 | 13 | </div> |
14 | 14 | <div class="flex w-full"> |
15 | 15 | <input |
16 | | - class="w-full bg-transparent py-2 outline-none placeholder:text-neutral-500" |
| 16 | + class="w-full bg-transparent py-2 outline-none placeholder:text-neutral-400 placeholder:dark:text-neutral-500" |
17 | 17 | v-model="searchTerm" |
18 | 18 | :placeholder="selectedCategory ? `Search in ${selectedCategory}` : 'Search'" /> |
19 | 19 | </div> |
20 | | - <div @click="searchTerm = ''" class="invisible flex cursor-pointer text-neutral-500 transition-all group-focus-within:visible"> |
| 20 | + <div @click="searchTerm = ''" class="invisible flex cursor-pointer text-neutral-300 dark:text-neutral-500 transition-all group-focus-within:visible"> |
21 | 21 | <Icon v-if="!loading" name="solar:close-square-bold" size="24" /> |
22 | 22 | <Icon v-else-if="loading" name="Loading" size="20" /> |
23 | 23 | </div> |
|
30 | 30 | isDropdownSortBy = false; |
31 | 31 | " |
32 | 32 | class="relative cursor-pointer select-none items-center justify-center text-sm font-semibold"> |
33 | | - <div class="box-border flex h-10 items-center rounded-xl bg-white/10 py-1.5 pl-4 pr-3 transition-all hover:bg-white/20 active:scale-95"> |
| 33 | + <div |
| 34 | + class="box-border flex h-10 items-center rounded-xl py-1.5 pl-4 pr-3 transition-all bg-neutral-800/5 hover:bg-neutral-800/10 dark:bg-white/10 hover:dark:bg-white/20 active:scale-95"> |
34 | 35 | <span class="mr-3">{{ selectedCategory || 'All Categories' }}</span> |
35 | 36 | <Icon name="ion:chevron-down-outline" size="14" /> |
36 | 37 | </div> |
37 | 38 | <Transition> |
38 | 39 | <div |
39 | 40 | v-if="isDropdownCategory" |
40 | | - class="absolute left-0 top-full z-10 mt-3 rounded-xl border border-white/10 text-[13px] font-medium backdrop-blur-xl dark:bg-neutral-800/80"> |
| 41 | + class="absolute left-0 top-full z-10 mt-3 rounded-xl border border-neutral-800/10 dark:border-white/10 text-[13px] font-medium backdrop-blur-xl bg-white/90 dark:bg-neutral-800/80 shadow-lg"> |
41 | 42 | <div class="m-2 w-44"> |
42 | | - <div @click="selectedCategory = ''" class="rounded-lg px-3 py-2 transition-all duration-300 hover:bg-white/5"> |
| 43 | + <div @click="selectedCategory = ''" class="rounded-lg px-3 py-2 transition-all duration-300 hover:bg-neutral-800/5 hover:dark:bg-white/5"> |
43 | 44 | <div class="flex items-center justify-between"> |
44 | 45 | <div class="mr-4 w-full">All Categories</div> |
45 | 46 | <Icon v-if="selectedCategory === ''" name="mingcute:check-line" size="16" /> |
|
49 | 50 | v-for="category in categories" |
50 | 51 | :key="category.id" |
51 | 52 | @click="selectedCategory = category.name" |
52 | | - class="rounded-lg px-3 py-2 transition-all duration-300 hover:bg-white/5"> |
| 53 | + class="rounded-lg px-3 py-2 transition-all duration-300 hover:bg-neutral-800/5 hover:dark:bg-white/5"> |
53 | 54 | <div class="flex items-center justify-between"> |
54 | 55 | <div class="mr-4 w-full">{{ category.name }}</div> |
55 | 56 | <Icon v-if="selectedCategory === category.name" name="mingcute:check-line" size="16" /> |
|
65 | 66 | isDropdownCategory = false; |
66 | 67 | " |
67 | 68 | class="relative cursor-pointer select-none items-center justify-center text-sm font-semibold"> |
68 | | - <div class="box-border flex h-10 items-center rounded-xl bg-white/10 py-1.5 pl-4 pr-3 transition-all hover:bg-white/20 active:scale-95"> |
| 69 | + <div |
| 70 | + class="box-border flex h-10 items-center rounded-xl py-1.5 pl-4 pr-3 transition-all bg-neutral-800/5 hover:bg-neutral-800/10 dark:bg-white/10 hover:dark:bg-white/20 active:scale-95"> |
69 | 71 | <span class="mr-3">{{ selectedOption }}</span> |
70 | 72 | <Icon name="ion:chevron-down-outline" size="14" /> |
71 | 73 | </div> |
72 | 74 | <Transition> |
73 | 75 | <div |
74 | 76 | v-if="isDropdownSortBy" |
75 | | - class="absolute right-0 top-full z-10 mt-3 rounded-xl border border-white/10 text-[13px] font-medium backdrop-blur-xl dark:bg-neutral-800/80"> |
| 77 | + class="absolute right-0 top-full z-10 mt-3 rounded-xl border border-neutral-800/10 dark:border-white/10 text-[13px] font-medium backdrop-blur-xl bg-white/90 dark:bg-neutral-800/80 shadow-lg"> |
76 | 78 | <div class="m-2 w-44"> |
77 | 79 | <div |
78 | 80 | v-for="(option, index) in options" |
79 | 81 | :key="index" |
80 | 82 | @click="selectedOption = option.value" |
81 | | - class="rounded-lg px-3 py-2 transition-all duration-300 hover:bg-white/5"> |
| 83 | + class="rounded-lg px-3 py-2 transition-all duration-300 hover:bg-neutral-800/5 hover:dark:bg-white/5"> |
82 | 84 | <div class="flex items-center justify-between"> |
83 | 85 | <div class="mr-4 w-full">{{ option.value }}</div> |
84 | 86 | <Icon v-if="selectedOption === option.value" name="mingcute:check-line" size="16" /> |
|
94 | 96 | <div |
95 | 97 | v-for="node in products" |
96 | 98 | :key="node.id" |
97 | | - class="group cursor-pointer rounded-2xl border border-neutral-800 p-2 transition-all hover:border-neutral-600 hover:bg-neutral-800/40"> |
| 99 | + class="group cursor-pointer rounded-2xl border border-neutral-200 dark:border-neutral-800 p-2 transition-all hover:border-neutral-300 hover:dark:border-neutral-600"> |
98 | 100 | <div class="relative mb-3 pb-[133%]"> |
99 | 101 | <NuxtImg |
100 | 102 | loading="lazy" |
101 | 103 | :title="node.name" |
102 | 104 | :alt="node.image.altText || node.name" |
103 | 105 | :src="node.galleryImages.nodes[0].sourceUrl" |
104 | | - class="absolute h-full w-full rounded-lg bg-neutral-800 object-cover" /> |
| 106 | + class="absolute h-full w-full rounded-lg dark:bg-neutral-800 bg-neutral-200 object-cover" /> |
105 | 107 | <NuxtImg |
106 | 108 | loading="lazy" |
107 | 109 | :title="node.name" |
108 | 110 | :alt="node.image.altText || node.name" |
109 | 111 | :src="node.image.sourceUrl" |
110 | | - class="absolute h-full w-full rounded-lg bg-neutral-800 object-cover transition-opacity duration-300 group-hover:opacity-0" /> |
| 112 | + class="absolute h-full w-full rounded-lg dark:bg-neutral-800 bg-neutral-200 object-cover transition-opacity duration-300 group-hover:opacity-0" /> |
111 | 113 | </div> |
112 | 114 | <div class="mb-1 grid grid-flow-col gap-6 px-2 text-sm font-semibold"> |
113 | 115 | <div class="flex min-w-0 flex-col justify-between gap-1"> |
114 | | - <div class="text-xs text-neutral-400"> |
| 116 | + <div class="text-xs text-secondary-text dark:text-secondary-text-d transition-all hover:text-black hover:dark:text-neutral-100"> |
115 | 117 | {{ node.allPaUrunTipi.nodes[0].name }} |
116 | 118 | </div> |
117 | 119 | <div :title="node.name" class="overflow-hidden text-ellipsis whitespace-nowrap"> |
118 | 120 | {{ node.name }} |
119 | 121 | </div> |
120 | 122 | </div> |
121 | 123 | <div class="flex flex-col gap-1 text-right"> |
122 | | - <div class="text-xs text-neutral-400 line-through" v-html="node.regularPrice"></div> |
123 | | - <div class="font-bold text-[#ff0000]" v-html="node.salePrice"></div> |
| 124 | + <div class="text-xs text-secondary-text dark:text-secondary-text-d line-through" v-html="node.regularPrice"></div> |
| 125 | + <div class="font-bold text-[#d9000c] dark:text-[#ff0000]" v-html="node.salePrice"></div> |
124 | 126 | </div> |
125 | 127 | </div> |
126 | 128 | </div> |
127 | 129 | <ProductSkeleton v-if="loading" /> |
128 | 130 | </div> |
129 | 131 | <div v-if="!empty && !loading" class="p-6 text-center text-lg"> |
130 | | - <Icon name="heroicons-outline:magnifying-glass" size="99"></Icon> |
| 132 | + <Icon name="majesticons:search-line" size="99"></Icon> |
131 | 133 | <div class="py-4"> |
132 | 134 | <span v-if="selectedCategory"> |
133 | 135 | In the <strong>{{ selectedCategory }}</strong> category, |
|
0 commit comments