Skip to content

Commit fd46dc9

Browse files
buqiyuanbrc-dd
andauthoredSep 16, 2023
fix(theme): remove extra padding from top when navbar is hidden (#2575)
Co-authored-by: Divyansh Singh <40380293+brc-dd@users.noreply.github.com>
1 parent 0cd87b1 commit fd46dc9

File tree

3 files changed

+24
-3
lines changed

3 files changed

+24
-3
lines changed
 

‎src/client/theme-default/Layout.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ provide('hero-image-slot-exists', heroImageSlotExists)
3535
<slot name="layout-top" />
3636
<VPSkipLink />
3737
<VPBackdrop class="backdrop" :show="isSidebarOpen" @click="closeSidebar" />
38-
<VPNav v-if="frontmatter.navbar !== false">
38+
<VPNav>
3939
<template #nav-bar-title-before><slot name="nav-bar-title-before" /></template>
4040
<template #nav-bar-title-after><slot name="nav-bar-title-after" /></template>
4141
<template #nav-bar-content-before><slot name="nav-bar-content-before" /></template>

‎src/client/theme-default/components/VPNav.vue

+15-2
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,29 @@
11
<script setup lang="ts">
2-
import { provide } from 'vue'
2+
import { inBrowser } from 'vitepress'
3+
import { computed, provide, watchEffect } from 'vue'
4+
import { useData } from '../composables/data'
35
import { useNav } from '../composables/nav'
46
import VPNavBar from './VPNavBar.vue'
57
import VPNavScreen from './VPNavScreen.vue'
68
79
const { isScreenOpen, closeScreen, toggleScreen } = useNav()
10+
const { frontmatter } = useData()
11+
12+
const hasNavbar = computed(() => {
13+
return frontmatter.value.navbar !== false
14+
})
815
916
provide('close-screen', closeScreen)
17+
18+
watchEffect(() => {
19+
if (inBrowser) {
20+
document.documentElement.classList.toggle('hide-nav', !hasNavbar.value)
21+
}
22+
})
1023
</script>
1124

1225
<template>
13-
<header class="VPNav">
26+
<header v-if="hasNavbar" class="VPNav">
1427
<VPNavBar :is-screen-open="isScreenOpen" @toggle-screen="toggleScreen">
1528
<template #nav-bar-title-before><slot name="nav-bar-title-before" /></template>
1629
<template #nav-bar-title-after><slot name="nav-bar-title-after" /></template>

‎src/client/theme-default/styles/vars.css

+8
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,14 @@
426426
--vp-nav-logo-height: 24px;
427427
}
428428

429+
.hide-nav {
430+
--vp-nav-height: 0px;
431+
}
432+
433+
.hide-nav .VPSidebar {
434+
--vp-nav-height: 22px;
435+
}
436+
429437
/**
430438
* Component: Local Nav
431439
* -------------------------------------------------------------------------- */

0 commit comments

Comments
 (0)
Please sign in to comment.