refine: redesigned layout, flower cards, edit sync, and bouquet preview framing
* refine: move upload mode toggle to top and compact it * refine: simplify upload layout and remove editorial numbers * refine: unify flow continue bar and redesign result page layout * refine: show bouquet flowers as scrollable cards on result page * refine: add flip-to-Korean on result flower cards * refine: improve result rationale and sync recipe on edit * refine: shorten edit title and align bouquet image framing to 3:4
This commit is contained in:
29
src/lib/components/ui/result/BouquetFlowerCarousel.svelte
Normal file
29
src/lib/components/ui/result/BouquetFlowerCarousel.svelte
Normal file
@@ -0,0 +1,29 @@
|
||||
<script>
|
||||
import BouquetFlowerCard from './BouquetFlowerCard.svelte';
|
||||
|
||||
/** @type {{ id: number, name: string, nameKo: string, wordOfFlower: string, wordOfFlowerKo: string, imageSrc: string, role?: 'main' | 'sub' | 'greenery' }[]} */
|
||||
let { flowers = [] } = $props();
|
||||
</script>
|
||||
|
||||
{#if flowers.length === 0}
|
||||
<p class="text-sm text-muted">Flower details will appear once the bouquet recipe is ready.</p>
|
||||
{:else}
|
||||
<div class="min-h-0 w-full">
|
||||
<p class="mb-4 text-xs tracking-[0.2em] text-muted uppercase">Flowers in your bouquet</p>
|
||||
|
||||
<div
|
||||
class="flex snap-x snap-mandatory gap-4 overflow-x-auto px-0.5 py-1 [-ms-overflow-style:none] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden"
|
||||
>
|
||||
{#each flowers as flower (flower.id)}
|
||||
<BouquetFlowerCard
|
||||
name={flower.name}
|
||||
nameKo={flower.nameKo}
|
||||
wordOfFlower={flower.wordOfFlower}
|
||||
wordOfFlowerKo={flower.wordOfFlowerKo}
|
||||
imageSrc={flower.imageSrc}
|
||||
role={flower.role ?? 'main'}
|
||||
/>
|
||||
{/each}
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
Reference in New Issue
Block a user