Skip to content

Commit

Permalink
fix: mobile header and footer prevent flicker on ios safari (#660)
Browse files Browse the repository at this point in the history
  • Loading branch information
joeldrake authored Dec 30, 2022
1 parent 13887a3 commit 1bb8963
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 4 deletions.
4 changes: 2 additions & 2 deletions components/main/MainContent.vue
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ defineProps<{
</script>

<template>
<div relative>
<div relative mobile-padding-top sm:pt-0>
<div
sticky top-0 z10
fixed sm:sticky w-full top-0 z10
border="b base" bg-base
>
<div flex justify-between px5 py4>
Expand Down
4 changes: 2 additions & 2 deletions layouts/default.vue
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,11 @@ const wideLayout = computed(() => route.meta.wideLayout ?? false)
</slot>
</div>
</aside>
<div class="w-full min-h-screen" :class="wideLayout ? 'lg:w-full sm:w-600px' : 'sm:w-600px'" sm:border-l sm:border-r border-base>
<div class="w-full min-h-screen" :class="wideLayout ? 'lg:w-full sm:w-600px' : 'sm:w-600px'" sm:border-l sm:border-r border-base mobile-padding-bottom sm:pb-0>
<div min-h="[calc(100vh-3.5rem)]" sm:min-h-screen>
<slot />
</div>
<div sm:hidden sticky left-0 right-0 bottom-0 z-10 bg-base pb="[env(safe-area-inset-bottom)]" transition="padding 20">
<div sm:hidden fixed w-full left-0 right-0 bottom-0 z-10 bg-base pb="[env(safe-area-inset-bottom)]" transition="padding 20">
<CommonOfflineChecker :small-screen="isHydrated.value" />
<NavBottom v-if="isHydrated.value" />
</div>
Expand Down
2 changes: 2 additions & 0 deletions unocss.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -101,5 +101,7 @@ export default defineConfig({
return res
}],
['box-shadow-outline', { 'box-shadow': '0 0 0 1px var(--c-primary)' }],
['mobile-padding-top', { 'padding-top': 'calc(4rem + 1px)' }], // in sm screen size header is fixed (instead of sticky) and parent have this padding, to prevent flickering in iOS Safari
['mobile-padding-bottom', { 'padding-bottom': '3.5rem' }], // in sm screen size footer is fixed (instead of sticky) and parent have this padding, to prevent flickering in iOS Safari
],
})

0 comments on commit 1bb8963

Please sign in to comment.