Back to Tooltip Menu-guidelines

CSS ComponentThe latest version of this package is: 17.0.1, Opens in new window

Bundle

This component provides .css, .styl, .less and .scss -files.

To be able to install this component, please refer to the Project Setup documentation.

$ npm i @ids-core/tooltip-menu@17.0.1

Barneforsikring

Barneforsikringen som hjelper barnet livet ut

  • Norges mest kjΓΈpte barneforsikring
  • UfΓΈrdekning i voksen alder
  • Økonomisk hjelp ved varig skade

Table of Contents

Edit this section, Opens in new window

Usage

<nav role="menu" class="if tooltip-menu top is-open center">
    <ul class="if">
        <li class="if">
            <a tabindex="-1" role="menuitem" href="asdasd" class="if">Forsikringer</a>
        </li>
        <li class="if">
            <a tabindex="-1" role="menuitem" href="asdsadsadsa" class="if">Personforsikring </a>
        </li>
    </ul>
</nav>

JavaScript implementation example

const tooltipInitiatorEl = document.querySelector('#tooltip');

tooltipInitiatorEl.addEventListener('click', (e) => {
    e.preventDefault();
    const tooltipMenuEl = tooltipInitiatorEl.parentElement.querySelector('.if.tooltip-menu');
    tooltipMenuEl.classList.toggle('is-open');
    if (tooltipMenuEl.classList.contains('is-open')) {
        const tooltipInitiatorElRect = tooltipInitiatorEl.getBoundingClientRect();
        const tooltipInitiatorParentElRect =
            tooltipInitiatorEl.parentElement.getBoundingClientRect();
        const tooltipMenuElRect = tooltipMenuEl.getBoundingClientRect();
        if (tooltipMenuEl.classList.contains('top')) {
            tooltipMenuEl.style.top = `${tooltipInitiatorParentElRect.height + 16}px`;
            tooltipMenuEl.style.left = `${
                tooltipInitiatorElRect.left -
                tooltipInitiatorParentElRect.left +
                tooltipInitiatorElRect.width / 2 -
                tooltipMenuElRect.width / 2
            }px`;
        }
    }
});

Position

You can use .left, .right, .top or .bottom to position the arrow.

<nav role="menu" class="if tooltip-menu right is-open">
    <ul class="if">
        <li class="if">
            <a tabindex="-1" role="menuitem" href="asdasd" class="if">Forsikringer</a>
        </li>
        <li class="if">
            <a tabindex="-1" role="menuitem" href="asdsadsadsa" class="if">Personforsikring </a>
        </li>
    </ul>
</nav>
<nav role="menu" class="if tooltip-menu bottom is-open">
    <ul class="if">
        <li class="if">
            <a tabindex="-1" role="menuitem" href="asdasd" class="if">Forsikringer</a>
        </li>
        <li class="if">
            <a tabindex="-1" role="menuitem" href="asdsadsadsa" class="if">Personforsikring </a>
        </li>
    </ul>
</nav>
<nav role="menu" class="if tooltip-menu left is-open">
    <ul class="if">
        <li class="if">
            <a tabindex="-1" role="menuitem" href="asdasd" class="if">Forsikringer</a>
        </li>
        <li class="if">
            <a tabindex="-1" role="menuitem" href="asdsadsadsa" class="if">Personforsikring </a>
        </li>
    </ul>
</nav>
<nav role="menu" class="if tooltip-menu top is-open">
    <ul class="if">
        <li class="if">
            <a tabindex="-1" role="menuitem" href="asdasd" class="if">Forsikringer</a>
        </li>
        <li class="if">
            <a tabindex="-1" role="menuitem" href="asdsadsadsa" class="if">Personforsikring </a>
        </li>
    </ul>
</nav>
Edit this section, Opens in new window

Accessibility

Remember to use the correct role, aria- and html-attributes for the menu options.

<nav
    class="if tooltip-menu is-open"
    tabindex="-1"
    role="menu"
    aria-labelledby="menu-0123-trigger"
    id="menu-0123"
>
    <ul class="if is-open">
        <li class="if">
            <button tabindex="-1" role="menuitem" class="if" type="button">Reimburse</button>
        </li>
    </ul>
</nav>

When the user navigates the menu with arrow keys, update the selected state with aria-selected.

if (e.key == 'ArrowUp') {
    nextElement = allOptions[--indexOfOptions];
    if (!nextElement) {
        indexOfOptions = allOptions.length - 1;
        nextElement = allOptions[indexOfOptions];
    }

    removePreviouslySelectedMenuItem(menuList);
    nextElement.classList.add('is-focused');
    nextElement.setAttribute('aria-selected', true);
} else if (e.key == 'ArrowDown') {
    nextElement = allOptions[++indexOfOptions];
    if (!nextElement) {
        indexOfOptions = 0;
        nextElement = allOptions[indexOfOptions];
    }
    removePreviouslySelectedMenuItem(menuList);
    nextElement.classList.add('is-focused');
    nextElement.setAttribute('aria-selected', true);
}
Edit this section, Opens in new window

Tokens

All of the tokens can be used as preprocessor and CSS variables

tooltip Menu tokens

Name Value Is aliased in
$ids-tooltip-menu-border-radius
0.375rem
Edit this section, Opens in new window

Changelog

Change Log

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

14.22.2 (2022-05-03)

Miscellaneous chores

  • package locks: update package locks (813eac7)

14.20.1 (2022-04-19)

Miscellaneous chores

  • changelog: regenerate all CHANGELOG.md files (64ab385) , closes #586342
  • changelog: regenerate all changelogs after updating changelog generation (70789c9) , closes #587270

14.18.3 (2022-04-13)

Bug Fixes

  • changelog: generate new CHANGELOG.md files for root and packages (349fda4) , closes #586063 . We regenerate the files to include all relevant commits and to use conventional-commits at 100%

14.16.0 (2022-04-07)

Bug Fixes

  • πŸ› Add missing imports for global CSS Variables (fbf6f06) , closes #582437

14.9.0 (2022-03-03)

Miscellaneous chores

14.8.1 (2022-02-23)

Bug Fixes

  • πŸ› Add missing imports of typography CSS variables (e716c65) , closes #559412

reinstall (d425056)

bootstrap (9a713df)

merge (2b1c5f1)

reinstall (5221600)

reinstall (147df55)

  • use correct versions (f1b5deb)

  • Add engines for all packages (e95dfff)

reinstall (afce1f2)

reinstall (67f3140)

  • Add changelog.md to files (3338314)

Reinstall (a2abf51)

14.2.2 (2021-12-10)

Code Refactoring

  • πŸ’‘ Change focus styles, remove whatinput (75fd31b) , closes #505205

  • rebuild and reinstall (f9fb687)

reinstall (885c74b)

14.0.4 (2021-11-15)

Bug Fixes

  • Several fixes reported by Monta (8619659)

  • fix changelogs manually (b1232b4)

reinstall (545a069)

reinstall (e149c2c)

13.12.3 (2021-11-09)

⚠ BREAKING CHANGES

  • 🧨 The scope for If Design System npm packages has now changed from @if-design-system to @ids-core. We have also renamed the repository from if-design-system to ids-core
  • 🧨 Util is now renamed to Utils
  • 🧨 We have now changed the navigation structure for the documentation site. Please update any saved links!
  • 🧨 Navigation structure has now changed. Please see release notes!

Documentation Updates

  • ✏️ Move position of the quick links (5cb0897)

  • ✏️ Remove unneeded margins for shortcuts (36c7e8d)

  • ✏️ Separate out CSS documentation (acd9cb8) , closes #467386

  • ✏️ Update links and change navigation structure (0bfd27d) , closes #490579

Code Refactoring

  • πŸ’‘ Categorize components (9965266) , closes #490579

  • πŸ’‘ Reduce spacing tokens, use correct size tokens (97aa461)

  • πŸ’‘ Rename scope and repository (3ea5423)

  • πŸ’‘ Use new navigation structure for documentation (415aee5) , closes #490579

  • another change in the structure (38a0d2e)

Miscellaneous chores

  • πŸ€– Prune changelogs (2c660c2)

  • πŸ€– Rename util to utils (f78721f)

bootstrap (6fc1ed8)

  • fix all old references to util (d57bf17)

  • prepare for merge (0184490)

reinstall (da80dba)

  • Rename scope and repo (257684e)

  • use correct version for utils (49e72d9)

13.11.0 (2021-10-19)

Features

  • 🎸 Input field hot reload (eac76b7)

13.9.2 (2021-09-30)

Bug Fixes

  • πŸ› Complete the pseudo-element fix (1dcee2c)

13.7.0 (2021-09-22)

Documentation Updates

  • ✏️ Update linking layout and naming (15c383b)

13.6.3 (2021-09-17)

Bug Fixes

13.6.0 (2021-09-08)

Documentation Updates

  • Use default shortcut listing for demo links (a746602)

  • πŸ€– Use node v14 (4009973)

bootstrap (d23e139)

  • πŸ€– Use correct order for diff (cc6a4fd)

12.14.1 (2021-08-12)

Miscellaneous chores

  • πŸ€– Add ci task to package.json without tests (21222e0) , closes #457627

12.13.1 (2021-08-11)

Bug Fixes

  • πŸ› Whitelist docs dir for npm packaging (1a5cfd0) , closes #457621

12.13.0 (2021-08-11)

Bug Fixes

12.12.1 (2021-08-10)

Bug Fixes

  • πŸ› Make sure components using fonts, have fonts bundled (d5bb642) , closes #354912

  • πŸ€– Remove .gitignore, use npm package.json files instead, ignore zip files for npm pack (49f0269) , closes #412081 . This will whitelist files to be used in "npm pack"

  • πŸ€– Reinstall (e660696)

  • πŸ€– Update published date (61e7ccf)

12.6.0 (2021-05-27)

Bug Fixes

  • πŸ› Manually set firstPublished and lastModified (e83af7d)

  • πŸ› We don't need lastModified (e458a12)

12.0.0 (2021-05-05)

⚠ BREAKING CHANGES

  • 🧨 All of the mixins have now been renamed
  • 🧨 USPs component is now renamed to Quick Facts
  • 🧨 Context Menu is refactored out and renamed to Tooltip Menu

Code Refactoring

  • πŸ’‘ Refactor and rename context menu to Tooltip Menu (7c7f8b1) , closes #336508

  • πŸ’‘ Rename and consolidate mixins (67cf470) , closes #268081

  • πŸ’‘ Renamed USPs component to Quick Facts (9120381) , closes #336508

Documentation Updates

  • ✏️ Remove "N/A" from empty sections (1e41446)

  • πŸ€– Reinstall (2c763ea)

  • πŸ€– Update all example references to old menu (81205ad)

rebuild (7edb430)

Edit this section, Opens in new window
Contact us, Opens in new window