Levitate 
Positioning floating(fixed) elements.
1 L levitate.tsSource Code
1 L levitatePlugins.tsSource Code
Basic Arguments:
| Anchor | Reference Element | 
| Pop | Floating Element | 
Config Arguments
| Dir | top right bottom left | 
| Align | start center(default) end | 
Other words:
- View(viewport): The Viewport boundary that will be clipped into Map. Default to the window viewport.
 - Map: The Clipped Viewport based on anchor's 
getBoundingClientRect(). which is the maximum size of the popper. 
Positioning 
Mannual Positioning 
  Code 
Auto Positioning 
levitate.auto() is built upon ResizeObserver and onscroll.
  Code 
Tooltip 
Learn how to conditional rendering.
Tooltip Basics 
  Code 
Tooltip Transition 
  Code 
Tooltip Trap 
Assign [tabindex='-1'] and @keydown.esc and call trap() after the pop opened.
The keyboard focus is trapped inside.
Anchor is focusable to prevent the focus from bling bling when you click upon the anchor to close it, but it is not required. an alt way to do this is onClickAway([$pop, $anc]); trap($pop, undefined)
  Code 
Plugins 
Learn advanced usage of customized positioning.
ApplyTransform 
The applyTransform plugin will assign top left max-width max-height [data-dir="bottom"] etc to your elements.
It is a post plugin which will run after Align(positioning process).
Here's another example of mannually transform.
  Code 
Margin 
To make a gap, make the map smaller, The algo is shown at the top of this page.
5px is enough to use.
  Code 
AutoPlacement / Flip 
If target direction's main axis length does not satisfies limit, try other directions which has more area x * y. autoPlacement will try all other directions while flip will only try the opposite direction.
limit default to pop.width (offsetWidth - clientWidth + scrollWidth)
  Code 
Max Height 
Assign max-width / max-height with the map's dimension to keep the pop in view.
Place it after autoPlacement thus get the right map before align.
Useful on Select / Dropdown.
Because max-width / max-height property is used by this plugin, you'll have to assign your max size limit to it's inner children.
The following example shows max-width at initial 100 items. Input 1000 to see how both max-width / max-height take into effect.
  Code 
Note on using with limit: Is there any situation where scrollWidth cannot repesents the actually maximum size (e.g. contains scrollable elements inside) so that you have to assign limit a number? In the following example, adding more and more items will makes it's children scroll and overflow other than it self, so the limit never reach, only scale the browser window to make the map bottom minus 1px will the pop flip.
  Code 
Elite 
In the Elite section, you'll discover complex real-world usage, beyond its basic API References.
CTX MENU 
- This example don't cover sub menu.