/tooltipper

A lightweight JavaScript library for implementing tooltips.

Primary LanguageTypeScriptMIT LicenseMIT

Tooltipper

A lightweight (1kB) JavaScript library for implementing tooltips.

Installation

Install via NPM:

npm i -S tooltipper

Install via CDN:

<script type="module" src="https://unpkg.com/tooltipper@1/tooltipper.min.mjs"></script>
<script defer src="https://unpkg.com/tooltipper@1/tooltipper.min.js"></script>

Usage

Create tooltips using the tooltip attribute:

<a href="#" tooltip="Edit file">
    <svg />
</a>

Create tooltips by adding the tooltip attribute to an element with an aria-label attribute:

<a href="#" aria-label="Edit file" tooltip>
    <svg />
</a>

Please note that tooltipper is an unopinionated library. All we aim to do is create, track, and remove custom <tool-tip> elements within the DOM. You are responsible for providing the CSS.

Example SCSS

Click here to view the example.

tool-tip {
    background-color: #424242;
    color: #fff;
    border-radius: 0.125rem;
    line-height: 24px;
    height: 24px;
    white-space: nowrap;
    padding: 0 0.5rem;
    font-size: 0.75rem;
    font-weight: 600;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
    pointer-events: none;
    transform-origin: center;

    /* The visible class is applied once the tool-tip element as been appended to the body & positioned correctly */
    &.visible {
        animation: limitedTooltip 1725ms 150ms linear forwards;
    }
}
@keyframes limitedTooltip {
    0% {
        opacity: 1;
    }
    4% {
        opacity: 1;
    }
    96% {
        opacity: 1;
    }
    100% {
        opacity: 0;
        animation-timing-function: ease-in-out;
    }
}