aboutsummaryrefslogtreecommitdiff
path: root/src/ui/c-tooltip/c-tooltip.vue
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/c-tooltip/c-tooltip.vue')
-rw-r--r--src/ui/c-tooltip/c-tooltip.vue27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/ui/c-tooltip/c-tooltip.vue b/src/ui/c-tooltip/c-tooltip.vue
new file mode 100644
index 0000000..cc48fe1
--- /dev/null
+++ b/src/ui/c-tooltip/c-tooltip.vue
@@ -0,0 +1,27 @@
+<script setup lang="ts">
+const props = withDefaults(defineProps<{ tooltip?: string }>(), { tooltip: '' });
+const { tooltip } = toRefs(props);
+
+const targetRef = ref();
+const isTargetHovered = useElementHover(targetRef);
+</script>
+
+<template>
+ <div class="relative" inline-block>
+ <div ref="targetRef">
+ <slot />
+ </div>
+
+ <div
+ class="absolute bottom-100% left-50% z-10 mb-5px whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s -translate-x-1/2"
+ :class="{
+ 'op-0 scale-0': isTargetHovered === false,
+ 'op-100 scale-100': isTargetHovered,
+ }"
+ >
+ <slot name="tooltip">
+ {{ tooltip }}
+ </slot>
+ </div>
+ </div>
+</template>