diff options
| author | HJ <30-hj@users.noreply.git.pleroma.social> | 2019-10-22 05:53:23 +0000 |
|---|---|---|
| committer | HJ <30-hj@users.noreply.git.pleroma.social> | 2019-10-22 05:53:23 +0000 |
| commit | cd956185207aca84666d38f516b6c4b666ee846b (patch) | |
| tree | c99e52945d37725975b9b48dd0c07052078a9a8b /src/components/modal/modal.vue | |
| parent | 051e6ea5ca8be5231d66e577a7e5407b53e08f61 (diff) | |
| parent | eb695fd61d97a8b4ce9de9c65b0133515d087a2c (diff) | |
Merge branch 'modal-scroll-lock' into 'develop'
Lock body scroll when modal is open globally
See merge request pleroma/pleroma-fe!974
Diffstat (limited to 'src/components/modal/modal.vue')
| -rw-r--r-- | src/components/modal/modal.vue | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/components/modal/modal.vue b/src/components/modal/modal.vue new file mode 100644 index 00000000..cee24241 --- /dev/null +++ b/src/components/modal/modal.vue @@ -0,0 +1,52 @@ +<template> + <div + v-show="isOpen" + v-body-scroll-lock="isOpen" + class="modal-view" + @click.self="$emit('backdropClicked')" + > + <slot /> + </div> +</template> + +<script> +export default { + props: { + isOpen: { + type: Boolean, + default: true + } + } +} +</script> + +<style lang="scss"> +.modal-view { + z-index: 1000; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + display: flex; + justify-content: center; + align-items: center; + overflow: auto; + animation-duration: 0.2s; + background-color: rgba(0, 0, 0, 0.5); + animation-name: modal-background-fadein; + + body:not(.scroll-locked) & { + opacity: 0; + } +} + +@keyframes modal-background-fadein { + from { + background-color: rgba(0, 0, 0, 0); + } + to { + background-color: rgba(0, 0, 0, 0.5); + } +} +</style> |
