59 lines
943 B
Vue
59 lines
943 B
Vue
<script setup lang="ts">
|
|
import { onMounted } from 'vue';
|
|
|
|
const panelOn = defineModel({default: false});
|
|
|
|
function handleClose(event:KeyboardEvent) {
|
|
if (panelOn.value) if (event.key == 'Escape') panelOn.value = false;;
|
|
}
|
|
|
|
onMounted(() => {
|
|
window.addEventListener('keydown', handleClose);
|
|
});
|
|
</script>
|
|
|
|
<template >
|
|
<template v-if="panelOn">
|
|
<div class="panel-container background" >
|
|
|
|
</div>
|
|
<div class="panel-container main-panel">
|
|
|
|
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
<style lang="css" scoped>
|
|
|
|
.background {
|
|
height: 100%;
|
|
width: 100%;
|
|
|
|
filter: opacity(30%);
|
|
|
|
background-color: black;
|
|
z-index: 90;
|
|
}
|
|
|
|
.main-panel {
|
|
height: 90%;
|
|
width: 90%;
|
|
|
|
filter: opacity(85%);
|
|
|
|
border-radius: 10px;
|
|
|
|
background-color: black;
|
|
}
|
|
|
|
.panel-container {
|
|
position: absolute;
|
|
|
|
top: 50%;
|
|
left: 50%;
|
|
transform: translate(-50%, -50%);
|
|
|
|
z-index: 100;
|
|
}
|
|
</style> |