@@ -283,10 +283,12 @@ const GridView = ( { aggregatedData, onDeleteCard, onUpdateCard, sortConfig, han
283283 key = { card . _id }
284284 className = "group relative flex flex-wrap mx-auto sm:w-fit lg:w-full min-h-[32rem] flex-col rounded border border-white/10 bg-black/30 transition hover:border-indigo-400/50"
285285 >
286- < div className = { `rounded relative flex-1 flip-card ${ isFlipped ? "flipped" : "" } ` } >
287- < div className = "flip-card-inner rounded" >
286+ < div className = "rounded relative mx-auto w-full max-w-[24rem] [perspective:1250px]" >
287+ < div
288+ className = { `grid w-full transition-transform duration-[800ms] [transform-style:preserve-3d] will-change-transform ${ isFlipped ? "[transform:rotateY(180deg)]" : "" } ` }
289+ >
288290 < div
289- className = "flip-card-front flex h-[24rem] w-fit flex-col rounded"
291+ className = "col-start-1 row-start-1 flex w-full flex-col rounded [backface-visibility:hidden] "
290292 role = "button"
291293 tabIndex = { 0 }
292294 aria-pressed = { isFlipped }
@@ -298,9 +300,9 @@ const GridView = ( { aggregatedData, onDeleteCard, onUpdateCard, sortConfig, han
298300 }
299301 } }
300302 >
301- < div className = "relative flex h-full w-auto items-center justify-center overflow-hidden rounded border border-white/10 bg-black/40 shadow-lg transition duration-200 group-hover:border-indigo-400/60 dark:border-white/20 dark:bg-gray-900/60" >
303+ < div className = "relative flex h-[24rem] w-full items-center justify-center overflow-hidden rounded border border-white/10 bg-black/40 shadow-lg transition duration-200 group-hover:border-indigo-400/60 dark:border-white/20 dark:bg-gray-900/60" >
302304 < img
303- className = "mx-auto h-full w-full object-top object-scale-down aspect-square "
305+ className = "mx-auto h-full w-full object-top object-contain "
304306 src = { imageSrc }
305307 alt = { `Card Image - ${ card . productName } ` }
306308 loading = "lazy"
@@ -312,7 +314,7 @@ const GridView = ( { aggregatedData, onDeleteCard, onUpdateCard, sortConfig, han
312314 className = "absolute inset-x-0 bottom-0 min-h-[24rem] bg-gradient-to-t from-black/80 via-black/30 to-transparent opacity-90"
313315 />
314316
315- < div className = "relative flex flex-col gap-1 text-white p-2 text-shadow glass w-full bg-transparent" >
317+ < div className = "relative flex flex-col gap-1 p-2 text-white text-shadow glass w-full bg-transparent" >
316318 < h3 className = "text-lg font-semibold text-pretty break-words" > { card . productName } </ h3 >
317319 { formatCurrency ( card . marketPrice ) && (
318320 < p className = "text-lg font-semibold" > { formatCurrency ( card . marketPrice ) } </ p >
@@ -325,19 +327,19 @@ const GridView = ( { aggregatedData, onDeleteCard, onUpdateCard, sortConfig, han
325327 ) }
326328 </ div >
327329 </ div >
328- < div className = "flip-card-back flex min-h-[32rem] w-full flex-col justify-between gap-3 rounded border border-white/10 bg-black p-4 text-white shadow-lg dark:border-white/20 dark:bg-gray-900/80" >
330+ < div className = "col-start-1 row-start-1 flex w-full flex-col justify-between gap-3 rounded border border-white/10 bg-black p-4 text-white shadow-lg dark:border-white/20 dark:bg-gray-900/80 [backface-visibility:hidden] [transform:rotateY(180deg)] " >
329331 < div className = "space-y-3" >
330332 < h3 className = "text-lg font-semibold text-center text-pretty break-words" > { card . productName } </ h3 >
331- < div className = "space-y-1 text-xs text-white/70 sm:text-sm" >
332- { detailEntries . map ( ( entry ) => (
333- < div key = { entry . label } className = "flex items-start justify-between gap-3 border-b border-white/5 pb-1 last:border-b-0" >
333+ < div className = "space-y-1 text-xs text-white/70 sm:text-sm" >
334+ { detailEntries . map ( ( entry ) => (
335+ < div key = { entry . label } className = "flex min-w-0 items-start justify-between gap-3 border-b border-white/5 pb-1 last:border-b-0" >
334336 < span className = "text-[0.65rem] font-semibold uppercase tracking-wide text-white/60 sm:text-xs" >
335337 { entry . label }
336338 </ span >
337- < span className = "text-right text-white" > { entry . value } </ span >
339+ < span className = "min-w-0 text-right break-words text-white" > { entry . value } </ span >
338340 </ div >
339- ) ) }
340- </ div >
341+ ) ) }
342+ </ div >
341343 </ div >
342344 < div className = "mx-auto mt-2 flex flex-wrap w-full gap-2 text-pretty sm:gap-3" >
343345 < Link
0 commit comments