diff --git a/docs/.vitepress/theme/components/VPLocalSearchBox.vue b/docs/.vitepress/theme/components/VPLocalSearchBox.vue index 71a54be23..d7d1fe804 100644 --- a/docs/.vitepress/theme/components/VPLocalSearchBox.vue +++ b/docs/.vitepress/theme/components/VPLocalSearchBox.vue @@ -65,6 +65,12 @@ const emit = defineEmits<{ (e: 'close'): void }>() +const show = ref(true) + +function close() { + show.value = false +} + const el = shallowRef() const resultsEl = shallowRef() @@ -690,12 +696,12 @@ onKeyStroke('Enter', (e) => { if (selectedPackage) { router.go(selectedPackage.id) - emit('close') + close() } }) onKeyStroke('Escape', () => { - emit('close') + close() }) /** @@ -769,7 +775,7 @@ onMounted(() => { useEventListener('popstate', (event) => { event.preventDefault() - emit('close') + close() }) /** Lock body */ @@ -822,16 +828,18 @@ function onMouseMove(e: MouseEvent) { @@ -1030,12 +1039,10 @@ function onMouseMove(e: MouseEvent) { inset: 0; display: flex; } - .backdrop { position: absolute; inset: 0; background: var(--vp-backdrop-bg-color); - transition: opacity 0.5s; } .shell { @@ -1432,4 +1439,17 @@ function onMouseMove(e: MouseEvent) { svg { flex: none; } + +@keyframes vp-backdrop-enter { + from { opacity: 0; } + to { opacity: 1; } +} + +.vp-local-search-enter-active .backdrop { + animation: vp-backdrop-enter 0.2s ease-out both; +} + +.vp-local-search-leave-active { + animation: vp-backdrop-enter 0.2s ease-in reverse both; +}