tippyjs
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<button class="btn">Text</button>
<div class="template" style="padding: 20px;">
<p>asdada</p>
<button id="close" onclick="document.querySelector('.btn')._tippy.hide()">asd</button>
</div>
<script src="https://unpkg.com/tippy.js@3/dist/tippy.all.min.js"></script>
</body>
</html>
JavaScript
tippy('.btn', {
content: document.querySelector('.template'),
arrow: true,
placement: 'right',
interactive: true
})