|
90 | 90 | </div> |
91 | 91 | </div> |
92 | 92 | </div> |
93 | | - <div class="grid gap-1 grid-cols-3"> |
94 | | - <div v-for="node in products" :key="node.id" class="bg-neutral-200 dark:bg-neutral-800 group relative"> |
95 | | - <div class="relative pb-[133%] overflow-hidden"> |
96 | | - <NuxtImg loading="lazy" :title="node.name" :alt="node.image.altText || node.name" :src="node.image.sourceUrl" class="object-cover w-full h-full absolute" /> |
| 93 | + <div class="grid gap-4 grid-cols-3"> |
| 94 | + <div v-for="node in products" :key="node.id" class="p-2 border border-neutral-700 rounded-2xl"> |
| 95 | + <div class="relative pb-[133%] mb-3"> |
| 96 | + <NuxtImg |
| 97 | + loading="lazy" |
| 98 | + :title="node.name" |
| 99 | + :alt="node.image.altText || node.name" |
| 100 | + :src="node.image.sourceUrl" |
| 101 | + class="object-cover w-full h-full absolute rounded-lg bg-neutral-800" /> |
97 | 102 | </div> |
98 | | - <div |
99 | | - class="bottom-0 left-0 right-0 top-0 flex flex-col justify-center items-center absolute text-white text-sm backdrop-blur-sm bg-black/80 invisible group-hover:visible"> |
100 | | - <div class="absolute p-4 flex flex-col gap-1 items-center"> |
101 | | - <div class="font-bold text-center"> |
102 | | - {{ node.name }} |
103 | | - </div> |
104 | | - <div class="flex gap-1"> |
105 | | - <div class="font-semibold text-[#ff0000]" v-html="node.salePrice"></div> |
106 | | - <div class="line-through text-neutral-400" v-html="node.regularPrice"></div> |
| 103 | + <div class="px-2 mb-1 text-sm font-semibold gap-6 grid-flow-col grid"> |
| 104 | + <div class="flex flex-col min-w-0 justify-between gap-1"> |
| 105 | + <div class="text-neutral-400 text-xs"> |
| 106 | + {{ node.allPaUrunTipi.nodes[0].name }} |
107 | 107 | </div> |
108 | | - <div class="flex gap-2 mt-3 flex-wrap justify-center"> |
109 | | - <span |
110 | | - :class="[variation.stockStatus === 'OUT_OF_STOCK' ? 'disabled' : '']" |
111 | | - class="py-1.5 px-2 border rounded leading-[10px] h-6" |
112 | | - v-for="variation in node.variations.nodes" |
113 | | - :key="variation.id" |
114 | | - :disabled="variation.stockStatus === 'OUT_OF_STOCK'"> |
115 | | - {{ variation.attributes.nodes.map((attr) => attr.value).toString() }} |
116 | | - </span> |
| 108 | + <div :title="node.name" class="text-ellipsis whitespace-nowrap overflow-hidden"> |
| 109 | + {{ node.name }} |
117 | 110 | </div> |
118 | 111 | </div> |
| 112 | + <div class="text-right gap-1 flex flex-col"> |
| 113 | + <div class="line-through text-neutral-400 text-xs" v-html="node.regularPrice"></div> |
| 114 | + <div class="text-[#ff0000] font-bold" v-html="node.salePrice"></div> |
| 115 | + </div> |
119 | 116 | </div> |
120 | 117 | </div> |
121 | | - <div v-if="loading" v-for="node in 9" :key="node" class="animate-pulse bg-neutral-200 dark:bg-neutral-800"> |
122 | | - <div class="relative pb-[133%] overflow-hidden"></div> |
123 | | - </div> |
124 | 118 | </div> |
125 | 119 | <div v-if="!empty && !loading" class="text-lg text-center p-6"> |
126 | 120 | <Icon name="heroicons-outline:magnifying-glass" size="99"></Icon> |
|
0 commit comments