Skip to content

Commit dab9d3a

Browse files
committed
feat: enhance InventoryGrid and Inventory components with improved styling and layout
1 parent 9bc30fb commit dab9d3a

2 files changed

Lines changed: 21 additions & 18 deletions

File tree

src/lib/components/item/InventoryGrid.svelte

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import EmptyStat from "$lib/components/EmptyStat.svelte";
44
import { type ModelsStrippedItem } from "$lib/shared/api/orval-generated";
55
import { shouldShine } from "$lib/shared/helper";
6+
import { Separator } from "$ui/separator";
67
import PackageSearchIcon from "@lucide/svelte/icons/package-search";
78
import type { Snippet } from "svelte";
89
@@ -17,15 +18,15 @@
1718
{#each items as item, index (index)}
1819
{#if index > 0}
1920
{#if index % gap === 0}
20-
<hr class="col-span-full h-4 border-0" />
21+
<Separator class="col-span-full my-4" />
2122
{/if}
2223
{/if}
2324
{#if item.texture_path}
24-
<div class="relative flex aspect-square items-center justify-center rounded-sm bg-text/4 data-[shine=true]:shine" data-shine={!preferences.performanceMode && shouldShine(item)}>
25+
<div class="relative flex aspect-square items-center size-full overflow-clip border justify-center rounded-xl bg-text/4 data-[shine=true]:shine" data-shine={!preferences.performanceMode && shouldShine(item)}>
2526
{@render itemSnippet(inventoryId === "inventory" ? ({ ...item, rarity: item.rarity ?? "uncommon" } as ModelsStrippedItem) : item)}
2627
</div>
2728
{:else}
28-
<div class="aspect-square rounded-sm bg-text/4"></div>
29+
<div class="aspect-square rounded-xl border bg-text/4"></div>
2930
{/if}
3031
{/each}
3132
</div>

src/lib/sections/stats/Inventory.svelte

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@
7373
<Separator orientation="horizontal" />
7474
{:else}
7575
<div class="@container-scroll flex h-fit relative w-full md:sticky md:top-1/4 md:w-fit">
76-
<Tabs.List class="bg-transparent @stuck-top:bg-background/50 h-fit transition-colors duration-150">
76+
<Tabs.List class="bg-transparent rounded-xl @stuck-top:bg-background/50 h-fit transition-colors duration-150">
7777
<ScrollArea class="h-144" orientation="vertical" type="auto" viewportClasses="scroll-fade-track-y rounded-xl rounded-br-none">
7878
<div class="flex flex-col gap-3 px-4 py-4">
7979
{@render inventoryTabItems(inventories, selectedTabName)}
@@ -85,7 +85,7 @@
8585
</div>
8686
{/if}
8787

88-
<Tabs.Content class="mx-auto sm:mt-4 sm:pt-4 w-full p-2 sm:p-0 md:mt-0 md:px-4" value={selectedTabName}>
88+
<Tabs.Content class="mx-auto sm:my-4 sm:py-4 w-full p-2 sm:p-0 md:my-0 md:px-4" value={selectedTabName}>
8989
{#if selectedTabName === "Search"}
9090
{#if uuid && profileId}
9191
<InventorySearch bind:search={searchValue} {uuid} {profileId} {itemSnippet} />
@@ -123,11 +123,11 @@
123123
{/snippet}
124124

125125
{#snippet emptyItem()}
126-
<div class="aspect-square rounded-sm bg-text/4"></div>
126+
<div class="aspect-square rounded-xl border bg-text/4"></div>
127127
{/snippet}
128128

129129
{#snippet gap()}
130-
<hr class="col-span-full h-4 border-0" />
130+
<Separator class="col-span-full my-4" />
131131
{/snippet}
132132

133133
{#snippet multipleInventorySection(items: ModelsStrippedItem[], currentInventory: ModelsInventory)}
@@ -139,7 +139,7 @@
139139
{#snippet child({ props })}
140140
<div {...props}>
141141
{#if item.texture_path}
142-
<div class="relative flex aspect-square items-center justify-center rounded-sm group-data-[state=active]:bg-text/10 group-data-[state=inactive]:bg-text/4 data-[shine=true]:shine" data-shine={!preferences.performanceMode && shouldShine(item)}>
142+
<div class="relative flex aspect-square items-center justify-center rounded-xl border overflow-clip group-data-[state=active]:bg-text/10 group-data-[state=inactive]:bg-text/4 data-[shine=true]:shine" data-shine={!preferences.performanceMode && shouldShine(item)}>
143143
{@render itemSnippet(item)}
144144
</div>
145145
{:else}
@@ -151,10 +151,21 @@
151151
{/each}
152152
{/if}
153153
</Tabs.List>
154+
154155
{#if items?.length}
155156
{#each items as item, index (index)}
156157
<Tabs.Content value={index.toString()}>
158+
<div class="grid place-content-center gap-1 @md:gap-1.5 @xl:gap-2" {@attach animateObfuscatedText}>
159+
<div class="rounded-xl my-4 border bg-background/50 p-4">
160+
{#if item?.lore}
161+
{#each item?.lore as lore, index (index)}
162+
{@html renderLore(lore)}
163+
{/each}
164+
{/if}
165+
</div>
166+
</div>
157167
<div class="grid grid-cols-[repeat(9,minmax(1.875rem,4.875rem))] place-content-center gap-1 @md:gap-1.5 @xl:gap-2">
168+
{@render gap()}
158169
{#if item?.containsItems}
159170
{#each item.containsItems as containedItem, index2 (index2)}
160171
{#if index2 > 0}
@@ -164,7 +175,7 @@
164175
{/if}
165176
<Tabs.Content value={index.toString()}>
166177
{#if containedItem.texture_path}
167-
<div class="relative flex aspect-square items-center justify-center rounded-sm bg-text/4 data-[shine=true]:shine" data-shine={!preferences.performanceMode && shouldShine(item)}>
178+
<div class="relative flex aspect-square items-center justify-center rounded-xl border overflow-clip bg-text/4 data-[shine=true]:shine" data-shine={!preferences.performanceMode && shouldShine(item)}>
168179
{@render itemSnippet(containedItem)}
169180
</div>
170181
{:else}
@@ -174,15 +185,6 @@
174185
{/each}
175186
{/if}
176187
</div>
177-
<div class="grid place-content-center gap-1 @md:gap-1.5 @xl:gap-2" {@attach animateObfuscatedText}>
178-
<div class="rounded-xl my-4 border bg-background/50 p-4">
179-
{#if item?.lore}
180-
{#each item?.lore as lore, index (index)}
181-
{@html renderLore(lore)}
182-
{/each}
183-
{/if}
184-
</div>
185-
</div>
186188
</Tabs.Content>
187189
{/each}
188190
{/if}

0 commit comments

Comments
 (0)