fix: prevent fight view scrolling on mobile with tab bar
All pages used h-[calc(100dvh-4rem)] which only subtracted the top navbar but ignored the mobile tab bar's pb-14 bottom padding, causing content to overflow and scroll. Changed all pages to h-full so they fill the flex parent (main element) which already handles both the navbar and tab bar spacing correctly. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
3b863d1f5f
commit
493983ccc0
@@ -34,7 +34,7 @@ const tierClass = (t: number) => `tier-${t}`
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="h-[calc(100dvh-4rem)] flex flex-col px-3 sm:px-6 py-4 sm:py-6 overflow-hidden">
|
||||
<div class="h-full flex flex-col px-3 sm:px-6 py-4 sm:py-6 overflow-hidden">
|
||||
<div class="max-w-5xl mx-auto w-full flex flex-col flex-1 min-h-0">
|
||||
|
||||
<!-- Header -->
|
||||
|
||||
@@ -354,7 +354,7 @@ const tierClass = (t: number) => `tier-${t}`
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="h-[calc(100dvh-4rem)] flex flex-col overflow-hidden">
|
||||
<div class="h-full flex flex-col overflow-hidden">
|
||||
<div class="max-w-lg lg:max-w-4xl mx-auto w-full flex flex-col flex-1 min-h-0 px-6 py-4 overflow-y-auto">
|
||||
|
||||
<div v-if="isLoading" class="flex-1 flex items-center justify-center">
|
||||
|
||||
@@ -286,7 +286,7 @@ const registrationTest = `{
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="h-[calc(100dvh-4rem)] flex flex-col overflow-hidden">
|
||||
<div class="h-full flex flex-col overflow-hidden">
|
||||
<div class="flex flex-col flex-1 min-h-0 px-6 py-4 max-w-4xl mx-auto w-full">
|
||||
|
||||
<div class="text-center mb-4 shrink-0">
|
||||
|
||||
@@ -114,7 +114,7 @@ onUnmounted(() => {
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="h-[calc(100dvh-4rem)] flex flex-col overflow-hidden relative">
|
||||
<div class="h-full flex flex-col overflow-hidden relative">
|
||||
|
||||
<!-- Page background -->
|
||||
<div class="absolute inset-0 overflow-hidden pointer-events-none">
|
||||
|
||||
@@ -594,7 +594,7 @@ function stopAutoBattle() {
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="h-[calc(100dvh-4rem)] flex flex-col px-2 sm:px-3 py-2 sm:py-3 overflow-hidden">
|
||||
<div class="h-full flex flex-col px-2 sm:px-3 py-2 sm:py-3 overflow-hidden">
|
||||
<div v-if="isLoading" class="flex-1 flex items-center justify-center">
|
||||
<p class="font-display text-text-muted animate-pulse tracking-wider">LOADING FIGHT...</p>
|
||||
</div>
|
||||
|
||||
@@ -315,7 +315,7 @@ onUnmounted(() => {
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="h-[calc(100dvh-4rem)] flex flex-col items-center justify-center px-6 overflow-hidden relative">
|
||||
<div class="h-full flex flex-col items-center justify-center px-6 overflow-hidden relative">
|
||||
<!-- Crowd characters floating around edges -->
|
||||
<template v-for="(c, i) in crowd" :key="i">
|
||||
<SpritePreview
|
||||
|
||||
@@ -225,7 +225,7 @@ function goToArena() {
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="h-[calc(100dvh-4rem)] flex flex-col items-center px-4 overflow-hidden">
|
||||
<div class="h-full flex flex-col items-center px-4 overflow-hidden">
|
||||
<div class="max-w-lg w-full flex-1 min-h-0 overflow-y-auto py-4">
|
||||
|
||||
<!-- Feedback flash overlay -->
|
||||
@@ -416,8 +416,8 @@ function goToArena() {
|
||||
</div>
|
||||
|
||||
<!-- PHASE: REPLAY -->
|
||||
<div v-else-if="phase === 'replay' && fight" class="w-full">
|
||||
<div class="h-[calc(100dvh-8rem)] min-h-0 relative">
|
||||
<div v-else-if="phase === 'replay' && fight" class="w-full flex-1 min-h-0 flex flex-col">
|
||||
<div class="flex-1 min-h-0 relative">
|
||||
<FightViewer :fight="fight" :autoplay="true" class="h-full" />
|
||||
</div>
|
||||
<div class="flex gap-2 mt-2">
|
||||
|
||||
@@ -419,7 +419,7 @@ function handleSignOut() {
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="h-[calc(100dvh-4rem)] flex flex-col items-center justify-center px-6 overflow-hidden">
|
||||
<div class="h-full flex flex-col items-center justify-center px-6 overflow-hidden">
|
||||
<div class="max-w-md w-full slide-up overflow-y-auto max-h-full py-4">
|
||||
|
||||
<!-- STEP: LOGIN -->
|
||||
|
||||
@@ -78,7 +78,7 @@ onUnmounted(() => {
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="h-[calc(100dvh-4rem)] flex flex-col px-6 py-6 overflow-hidden">
|
||||
<div class="h-full flex flex-col px-6 py-6 overflow-hidden">
|
||||
<div class="max-w-4xl mx-auto w-full flex flex-col flex-1 min-h-0">
|
||||
|
||||
<!-- Header -->
|
||||
|
||||
@@ -57,7 +57,7 @@ function goFight() {
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="h-[calc(100dvh-4rem)] flex flex-col items-center justify-center px-6 overflow-hidden">
|
||||
<div class="h-full flex flex-col items-center justify-center px-6 overflow-hidden">
|
||||
<div class="max-w-md w-full slide-up">
|
||||
|
||||
<div class="text-center mb-8">
|
||||
|
||||
@@ -58,7 +58,7 @@ onMounted(() => {
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="h-[calc(100dvh-4rem)] flex flex-col px-6 py-6 overflow-hidden">
|
||||
<div class="h-full flex flex-col px-6 py-6 overflow-hidden">
|
||||
<div class="max-w-4xl mx-auto w-full flex flex-col flex-1 min-h-0">
|
||||
|
||||
<!-- Header -->
|
||||
|
||||
Reference in New Issue
Block a user