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:
Dorian
2026-03-09 07:57:37 +00:00
co-authored by Claude Opus 4.6
parent 3b863d1f5f
commit 493983ccc0
11 changed files with 13 additions and 13 deletions
+1 -1
View File
@@ -34,7 +34,7 @@ const tierClass = (t: number) => `tier-${t}`
</script> </script>
<template> <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"> <div class="max-w-5xl mx-auto w-full flex flex-col flex-1 min-h-0">
<!-- Header --> <!-- Header -->
+1 -1
View File
@@ -354,7 +354,7 @@ const tierClass = (t: number) => `tier-${t}`
</script> </script>
<template> <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 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"> <div v-if="isLoading" class="flex-1 flex items-center justify-center">
+1 -1
View File
@@ -286,7 +286,7 @@ const registrationTest = `{
</script> </script>
<template> <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="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"> <div class="text-center mb-4 shrink-0">
+1 -1
View File
@@ -114,7 +114,7 @@ onUnmounted(() => {
</script> </script>
<template> <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 --> <!-- Page background -->
<div class="absolute inset-0 overflow-hidden pointer-events-none"> <div class="absolute inset-0 overflow-hidden pointer-events-none">
+1 -1
View File
@@ -594,7 +594,7 @@ function stopAutoBattle() {
</script> </script>
<template> <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"> <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> <p class="font-display text-text-muted animate-pulse tracking-wider">LOADING FIGHT...</p>
</div> </div>
+1 -1
View File
@@ -315,7 +315,7 @@ onUnmounted(() => {
</script> </script>
<template> <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 --> <!-- Crowd characters floating around edges -->
<template v-for="(c, i) in crowd" :key="i"> <template v-for="(c, i) in crowd" :key="i">
<SpritePreview <SpritePreview
+3 -3
View File
@@ -225,7 +225,7 @@ function goToArena() {
</script> </script>
<template> <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"> <div class="max-w-lg w-full flex-1 min-h-0 overflow-y-auto py-4">
<!-- Feedback flash overlay --> <!-- Feedback flash overlay -->
@@ -416,8 +416,8 @@ function goToArena() {
</div> </div>
<!-- PHASE: REPLAY --> <!-- PHASE: REPLAY -->
<div v-else-if="phase === 'replay' && fight" class="w-full"> <div v-else-if="phase === 'replay' && fight" class="w-full flex-1 min-h-0 flex flex-col">
<div class="h-[calc(100dvh-8rem)] min-h-0 relative"> <div class="flex-1 min-h-0 relative">
<FightViewer :fight="fight" :autoplay="true" class="h-full" /> <FightViewer :fight="fight" :autoplay="true" class="h-full" />
</div> </div>
<div class="flex gap-2 mt-2"> <div class="flex gap-2 mt-2">
+1 -1
View File
@@ -419,7 +419,7 @@ function handleSignOut() {
</script> </script>
<template> <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"> <div class="max-w-md w-full slide-up overflow-y-auto max-h-full py-4">
<!-- STEP: LOGIN --> <!-- STEP: LOGIN -->
+1 -1
View File
@@ -78,7 +78,7 @@ onUnmounted(() => {
</script> </script>
<template> <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"> <div class="max-w-4xl mx-auto w-full flex flex-col flex-1 min-h-0">
<!-- Header --> <!-- Header -->
+1 -1
View File
@@ -57,7 +57,7 @@ function goFight() {
</script> </script>
<template> <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="max-w-md w-full slide-up">
<div class="text-center mb-8"> <div class="text-center mb-8">
+1 -1
View File
@@ -58,7 +58,7 @@ onMounted(() => {
</script> </script>
<template> <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"> <div class="max-w-4xl mx-auto w-full flex flex-col flex-1 min-h-0">
<!-- Header --> <!-- Header -->