Skip to content

Commit e514822

Browse files
committed
feat: added skeleton for product page
1 parent 543db0f commit e514822

File tree

2 files changed

+69
-3
lines changed

2 files changed

+69
-3
lines changed

components/ProductPageSkeleton.vue

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
<template>
2+
<div class="animate-pulse border border-[#333] mt-10 mb-10 rounded-[32px]">
3+
<div class="flex p-5 flex-row gap-6">
4+
<div class="relative">
5+
<div class="w-[400px] h-[600px]">
6+
<div class="rounded-2xl border border-[#333] absolute h-full w-full bg-neutral-800"></div>
7+
<div class="bullets-wrapper-skeleton border border-[#333]">
8+
<div class="bullets-container-skeleton relative gap-2">
9+
<div class="w-6 rounded-sm h-8 bg-[#333]" v-for="i in 6" :key="i"></div>
10+
</div>
11+
</div>
12+
</div>
13+
</div>
14+
<div class="w-full">
15+
<div class="flex-col flex gap-4">
16+
<div class="pb-4 border-b border-[#333]">
17+
<div class="h-7 w-2/3 bg-neutral-800 mb-2 rounded"></div>
18+
<div class="flex justify-between flex-row items-baseline">
19+
<div class="flex flex-row items-baseline">
20+
<div class="h-5 w-40 bg-neutral-800 mb-1 rounded"></div>
21+
</div>
22+
</div>
23+
<div class="flex-wrap items-baseline flex-row flex">
24+
<div class="h-5 w-36 bg-neutral-800 mb-1 rounded"></div>
25+
</div>
26+
</div>
27+
<div class="flex gap-2">
28+
<div class="rounded-md border border-[#333] w-12 h-[71px] bg-neutral-800" v-for="i in 2" :key="i"></div>
29+
</div>
30+
<div class="pb-4 border-b border-[#333]">
31+
<div class="h-5 w-20 bg-neutral-800 mb-2 rounded"></div>
32+
<div class="flex gap-2 mt-2 mb-4 flex-wrap">
33+
<div class="py-1 px-3 border w-11 h-[34px] rounded-md border-[#333] bg-neutral-800" v-for="i in 5" :key="i"></div>
34+
</div>
35+
<div class="flex">
36+
<div class="w-full h-12 border rounded-md border-[#333] bg-neutral-800"></div>
37+
<div>
38+
<div class="w-12 h-12 rounded-md border ml-4 border-[#333] bg-neutral-800"></div>
39+
</div>
40+
</div>
41+
</div>
42+
<div>
43+
<div class="bg-neutral-800 h-7 rounded w-44 mb-4"></div>
44+
<div class="bg-neutral-800 h-5 rounded w-96 mb-2"></div>
45+
<div class="bg-neutral-800 h-5 rounded w-72 mb-2"></div>
46+
<div class="bg-neutral-800 h-5 rounded w-24 mb-2"></div>
47+
<div class="bg-neutral-800 h-5 rounded w-40 mb-2"></div>
48+
<div class="bg-neutral-800 h-5 rounded w-32 mb-2"></div>
49+
<div class="bg-neutral-800 h-5 rounded w-full mb-2"></div>
50+
<div class="bg-neutral-800 h-5 rounded w-60"></div>
51+
</div>
52+
</div>
53+
</div>
54+
</div>
55+
</div>
56+
</template>
57+
58+
<style lang="postcss">
59+
.bullets-wrapper-skeleton {
60+
@apply p-2 rounded-xl absolute left-1/2 bottom-2 -translate-x-1/2;
61+
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5);
62+
}
63+
.bullets-wrapper-skeleton .bullets-container-skeleton {
64+
@apply flex justify-center items-center rounded-md;
65+
}
66+
</style>

pages/product/[slug].vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
<template>
22
<ButtonBack />
3-
<div v-if="loading">loading...</div>
3+
<ProductPageSkeleton v-if="loading" />
44
<div v-else class="border border-[#262626] mt-10 mb-10 rounded-[32px]">
55
<div class="flex p-5 flex-row gap-6">
66
<div class="relative">
7-
<div class="w-[400px]">
8-
<NuxtImg :src="product.image.sourceUrl" class="rounded-2xl border border-[#262626]" />
7+
<div class="w-[400px] h-[600px]">
8+
<NuxtImg :src="product.image.sourceUrl" class="h-full w-full rounded-2xl border border-[#262626]" />
99
<div class="bullets-wrapper">
1010
<div class="bullets-container gap-2">
1111
<NuxtImg class="w-6 rounded-sm" :src="product.image.sourceUrl" />

0 commit comments

Comments
 (0)