Tooltip
Directive for add tooltip to element.
Usage
Simple Usage
<template>
<span v-p-tooltip title="Hello I'm Tooltip">
Hover Me
</span>
</template>
<script setup>
import { vPTooltip } from '@privyid/persona/directive'
</script>
With Markdown
<template>
<span v-p-tooltip title="**Hello** _I'm_ ~~Reyhan~~ Tooltip">
Hover Me
</span>
</template>
<script setup>
import { vPTooltip } from '@privyid/persona/directive'
</script>
Color
You can change tooltip color using modifiers .black
, .white
, default is black
Placement
You can change tooltip position using modifiers .top
, .left
, .right
, and .bottom
. default is top
.
<template>
<p-button v-p-tooltip.top title="Top">Top</p-button>
<p-button v-p-tooltip.left title="Left">Left</p-button>
<p-button v-p-tooltip.right title="Right">Right</p-button>
<p-button v-p-tooltip.bottom title="Bottom">Bottom</p-button>
</template>
Placement Align
You can combine with modifier .start
and .end
to set tooltip align.
<template>
<p-button v-p-tooltip.bottom title="Bottom">Bottom</p-button>
<p-button v-p-tooltip.bottom.start title="Bottom Start">Start</p-button>
<p-button v-p-tooltip.bottom.end title="Bottom End">End</p-button>
</template>
Trigger
Tooltips can be triggered (opened/closed) using modifiers .click
, .hover
and .focus
. The default trigger is hover
+ focus
.
<template>
<p-button v-p-tooltip title="Hover + Focus">Default</p-button>
<p-button v-p-tooltip.click title="Click">Click</p-button>
<p-button v-p-tooltip.hover title="Hover">Hover</p-button>
<p-button v-p-tooltip.focus title="Focus">Focus</p-button>
</template>
Long Hover
Special for .hover
, it's have additional modifier .long
which enable Long Hover mode. Duration can be change using data-tooltip-long
attribute, default is 500
(ms).
<template>
<p-button v-p-tooltip.hover title="Hover">Hover</p-button>
<p-button v-p-tooltip.hover.long title="Hover + Long">Long Hover</p-button>
<p-button v-p-tooltip.hover.long title="Hover + Long + Duration" data-tooltip-long="1500">Super Long Hover</p-button>
</template>
Manual Trigger
If you prefer to trigger manually, add modifiers .manual
and combine it with some ref.
<template>
<p-button v-p-tooltip.manual="show" title="Hello I'm Tooltip">
Lorem Ipsum
</p-button>
<p-checkbox v-model="show">Show Tooltip</p-checkbox>
</template>
<script lang="ts" setup>
const show = ref(false)
</script>
Programmatic Trigger
Alternatively, you can manual trigger tooltip using showTooltip
, hideToolip
, or toggleTooltip
function.
<template>
<span v-p-tooltip.manual title="Hello I'm Tooltip" id="tooltip-manual">
Lorem Ipsum
</span>
<p-button @click="showTooltip('#tooltip-manual')">Show</p-button>
<p-button @click="hideTooltip('#tooltip-manual')">Hide</p-button>
<p-button @click="toggleTooltip('#tooltip-manual')">Toggle</p-button>
</template>
<script lang="ts" setup>
import {
showTooltip,
hideTooltip,
toggleTooltip,
} from '@privyid/persona/core'
</script>
API
Modifiers
Modifiers | Description |
---|---|
black | Enable color black |
white | Enable color white |
top | Set placement to top |
left | Set placement to left |
right | Set placement to right |
bottom | Set placement to bottom |
start | Set placement align to start |
end | Set placement align to end |
hover | Enable hover trigger |
click | Enable click trigger |
focus | Enable focus trigger |
long | Enable long hover mode |
Events
Name | Arguments | Description |
---|---|---|
tooltip:show | Native DOM Event object | Event when tooltip will be show |
tooltip:hide | Native DOM Event object | Event when tooltip will be hide |