GCS Studios

NWD Tooltip Master (Rich Content) v1.26.0

NWD Tooltip Master (Rich Content) puts real content inside a tooltip instead of a single line of text. It takes HTML, BBCode, and embedded pages such as a video or a map. Tooltips can be interactive, so the person moves the pointer inside and clicks what is there, and the look is yours to set, from placement and animation to timing, colors, border and arrow.

No data collected

Why use this?

Built for what Bubble does not cover.

Bubble's native tooltip is a plain text string on hover, with no styling, no HTML or BBCode processing, and no control over its placement, its animation, how it is triggered or any other refinement. Matching it to the look of your app, or to its color theme, is not possible natively.

Key features 6

Three Ways to Write It

Plain text escapes every tag and keeps your line breaks, html renders your own markup, and bbcode converts more than 50 tags, from bold and color to lists, quotes, tables and embeds, without ever handing raw HTML to the page.

Embedded Content

A tooltip can hold an iframe: a YouTube or Vimeo video, a Google map, an external page. Four fit modes decide whether the iframe shrinks into the tooltip, the tooltip expands around it, or it scrolls.

Fifteen Placements

Twelve fixed sides with start and end alignment, plus three auto modes that pick the side with the most room. Skidding and distance in pixels move it from there, and it can follow the cursor on one axis or both.

Four Themes or Your Own

Light, light-border, material and translucent come ready. The custom theme opens background, border, radius, shadow, padding, font, text alignment, arrow size and arrow color, with a glass blur on top.

Thirteen Animations

Fade, shift away, shift toward, scale and perspective, each with a subtle and an extreme variant. Show and hide have their own duration and delay in milliseconds, and a slingshot curve is one checkbox away.

Interaction You Decide

Four triggers covering hover, click and keyboard focus, four touch modes including press and hold, and an interactive mode that lets the cursor enter the tooltip to click a link inside it without closing it.

In detail

Rich Content

  • Plain text, HTML or BBCode, chosen per tooltip
  • 40+ BBCode tags, from bold and color to headings, lists, quotes and spoilers
  • Embedded media without writing a line of HTML: youtube, vimeo, video, audio, images and GIFs
  • Iframes for videos, maps and external pages, with 4 fit modes deciding how they sit inside the tooltip
  • Line breaks and spacing preserved in plain text, with every HTML tag escaped

Smart Positioning

  • 15 placements: 12 fixed sides with start and end alignment, plus 3 auto modes that pick the side with the most room
  • Skidding and distance in pixels to offset the tooltip from its target
  • Follow the cursor on both axes, on a single axis, or only until the tooltip is fully shown
  • Maximum width that never lets the tooltip grow wider than the screen
  • Optional arrow pointing at the target, with its own size and color

Animation & Timing

  • 13 animations across fade, shift away, shift toward, scale and perspective, each with subtle and extreme variants
  • Independent duration and delay for showing and for hiding, in milliseconds
  • Slingshot easing and a background fill effect for the shift away animations
  • Move transition that keeps the tooltip gliding when its target moves or changes size

Interaction Control

  • 4 trigger actions covering hover, click and keyboard focus
  • 4 touch modes, including press and hold for mobile devices
  • Interactive tooltips the cursor can enter, to click a link inside without closing it
  • Interactive border and debounce to keep it open by space or by time
  • Disable the tooltip without removing the element or changing the layout

Fully Customizable

  • 4 preset themes: light, light-border, material and translucent
  • Custom theme with background, border width, border color, radius, shadow color and shadow spread
  • Padding on the box and on the content, font size, font color and text alignment
  • Glass blur effect for translucent backgrounds
  • 40+ properties in all, grouped in sections inside the element panel

Reliable & Production-Ready

  • Positioning built on Tippy.js, with the rich content, theming and Bubble integration added on top
  • Built with lightweight CSS and JavaScript for fast, reliable performance
  • Designed around practical use cases and real Bubble development needs
  • Tested in real-world applications before being released publicly
  • Created to extend Bubble with functionality and customization beyond what native Bubble elements typically offer

How to use 4

  1. 01
    Enable the option to set an ID

    In the Bubble editor, go to the tab "Settings > General > Advanced options" and check the box "Expose the option to add an ID attribute to HTML elements".

  2. 02
    Identify the target element

    Set an ID to the target element. If the target element is disabled, it needs to be wrapped in another element as a group, and then the ID must be set to the group.

    To prevent compatibility issues, avoid starting IDs with numbers or symbols. Start with letters and use hyphens or underscores if needed.

  3. 03
    Insert the plugin element anywhere on the page

    Insert the plugin element anywhere on the page and ensure it is always visible.

    In Bubble, any element-type plugin must be visible to work properly.

  4. 04
    Provide the ID and set the plugin properties as desired

    In the plugin element, provide the ID assigned to the target element (in step 2), write the tooltip content, and set the other plugin properties according to your needs. The Content type property decides whether the content is rendered as plain text, HTML or BBCode, and inside a repeating group each cell needs its own unique ID.

TARGET ELEMENT 1

Element ID

text

Provide the ID that was assigned to the target element.

One plugin element serves one target at a time, and the field accepts a dynamic expression, so the same element can follow whichever target the page is dealing with: changing the ID moves the tooltip to the new target. Inside a repeating group, place Tooltip Master inside the cell and build the ID from the row, for example "tooltip-master-" plus the cell's index, so every cell gets its own tooltip instead of all of them pointing at the first cell. And a disabled element never triggers the tooltip, so point the plugin at a Group wrapping it.

CONTENT 2

Tooltip content

text

Sets the tooltip content, static or dynamic, which can be plain text, HTML or BBCode according to the Content type property.

Content type

dropdown

Sets how the content is processed. Plain text and BBCode are escaped, so they are safe for text typed by users. HTML is inserted as written: use it only with content you control, never with data typed by users.

  • plain textescapes every HTML tag, so markup arrives as visible characters. Line breaks and spacing are kept. Safe by default.
  • htmlrenders the content as HTML, which is what makes an iframe, a table or a styled block possible. Use it only with content you control, and sanitize anything that comes from your users before it reaches the tooltip.
  • bbcodeescapes the HTML first and then converts more than 50 BBCode tags into markup, which gives formatting and embeds without opening the tooltip to raw HTML.

PLACEMENT 5

Placement

dropdown

Sets the position of the tooltip relative to the reference element. The options auto, auto-start and auto-end adapt to the space available around the reference element choosing the side with most space.

  • topabove the target element.
  • top-startabove the target element, aligned to its start edge.
  • top-endabove the target element, aligned to its end edge.
  • rightto the right of the target element.
  • right-startto the right of the target element, aligned to its start edge.
  • right-endto the right of the target element, aligned to its end edge.
  • bottombelow the target element.
  • bottom-startbelow the target element, aligned to its start edge.
  • bottom-endbelow the target element, aligned to its end edge.
  • leftto the left of the target element.
  • left-startto the left of the target element, aligned to its start edge.
  • left-endto the left of the target element, aligned to its end edge.
  • autopicks the side with the most space available around the target.
  • auto-startpicks the side with the most space and aligns to the start edge when it fits.
  • auto-endpicks the side with the most space and aligns to the end edge when it fits.

Display arrow?

yes/no

Enables the display of an indicative arrow in the tooltip, facing the reference element.

Follow cursor

dropdown

Sets the tooltip behavior, whether it should follow the mouse cursor and how it should follow.

  • truethe tooltip follows the cursor on both axes.
  • falsethe tooltip stays anchored to the target element.
  • horizontalthe tooltip follows the cursor on the x axis only.
  • verticalthe tooltip follows the cursor on the y axis only.
  • initialthe tooltip follows the cursor until it is fully shown and then stops, which keeps the show delay working as written.

Sticky to the element

dropdown

Sets whether the tooltip should snap to the reference element when displayed. This is not generally necessary, but is useful if the reference element's position is animating or to automatically update the tooltip position.

  • truethe position is kept up to date against both the target element and the tooltip's own box.
  • falsethe tooltip keeps the position it had when it was shown.
  • referencethe tooltip follows only the target element, which is what you want when the target moves or is animated.
  • popperthe position updates only when the tooltip itself changes size or layout, for example when its content grows.

This one costs performance. Turn it on only where the target really moves.

Move transition?

yes/no

Enables a transition effect between movements or position updates to the tooltip when the position of the target element changes.

Worth turning on when the position jumps rather than drifts: the target moves, the page resizes, the target or the content changes size while the tooltip is open, or the cursor crosses the target quickly.

Avoid it together with Follow cursor on a hover trigger. The two update the position on every mouse move and the tooltip trembles instead of gliding.

ANIMATION 3

Animation type

dropdown

Sets the animation type for showing/hiding the tooltip.

  • fadefades in and out with no movement.
  • shift-awayfades while moving slightly away from the target element.
  • shift-away-subtlea softer shift away, with less movement.
  • shift-away-extremea stronger shift away, with more noticeable movement.
  • shift-towardfades while moving slightly toward the target element.
  • shift-toward-subtlea softer shift toward, with less movement.
  • shift-toward-extremea stronger shift toward, with more noticeable movement.
  • scalescales in and out, like a zoom.
  • scale-subtlea softer zoom, with a smaller scale change.
  • scale-extremea stronger zoom, with a more dramatic scale change.
  • perspectiveappears with a 3D perspective rotation.
  • perspective-subtlea softer perspective, with a lighter rotation.
  • perspective-extremea stronger perspective, with a more dramatic rotation.

Fill effect?

yes/no

Enables a fill effect animation for the tooltip background color. This property only works with "shift-away" animations.

While the fill effect is on, the arrow is not drawn, whatever Display arrow? says. The effect also needs one of the shift-away animations to be visible.

Slingshot effect?

yes/no

Enables a slingshot effect as a transition for the defined animation type.

DISPLAY 4

Show duration

number

Sets the animation duration (in milliseconds) to show the tooltip.

Hide duration

number

Sets the animation duration (in milliseconds) to hide the tooltip.

Show delay

number

Sets the animation delay (in milliseconds) to show the tooltip.

A show delay is what keeps the tooltip from flashing while the cursor only crosses the element on its way somewhere else.

Hide delay

number

Sets the animation delay (in milliseconds) to hide the tooltip.

INTERACTIVITY 3

Interactive content?

yes/no

Enables the possibility of interacting with the content within the tooltip, in cases where it is necessary to hover or click on the content without closing the tooltip.

Interactive border

number

Sets the size (in pixels) of the invisible border around the tooltip, increasing the interactive area and preventing the tooltip from closing while the mouse is still within this interactive area (spatial alternative to keeping the tooltip visible).

This is the spatial way to keep the tooltip open: a wider invisible area around it, so a cursor travelling toward the tooltip never leaves the active region. Interactive debounce is the temporal way, and the two work together.

Interactive debounce

number

Sets the delay (in milliseconds) to hide the tooltip when the cursor leaves the interactive region. This is therefore a temporal alternative to enabling interaction with the tooltip, as opposed to the spatial alternative provided by the Interactive border property, although both can be used together.

This is the temporal way to keep the tooltip open: the hiding waits, so the cursor has time to reach the tooltip. Interactive border is the spatial way, and the two work together.

SIZE & OFFSET 4

Max width

number

Sets a maximum width (in pixels) for the tooltip to prevent it from becoming too wide. If the viewport width is smaller than the set maximum width, the tooltip's internal settings ensure that it remains smaller than the screen.

Any Iframe fit mode other than none can override this value, because in those modes fitting the iframe is what decides the width.

Iframe fit mode

dropdown

Sets the responsiveness of the iframe on different screen sizes. As expected, these modes only applies when the tooltip content contains an Iframe.

  • noneleaves the iframe size and behavior untouched. Max width then has to be set by hand, wide enough for the iframe.
  • shrinkforces the iframe to fill the tooltip area available to it.
  • expandexpands the tooltip to accommodate the iframe, keeping it responsive.
  • scrollkeeps the iframe at its natural size and scrolls inside the tooltip when it does not fit.

Offset skidding

number

Sets the skidding (in pixels) of the tooltip relative to its reference element.

Offset distance

number

Sets the distance (in pixels) of the tooltip relative to its reference element.

TRIGGER 4

Trigger action

dropdown

Sets the type of the event that will show/hide the tooltip. The trigger action is related to the action performed on the reference element and should be defined according to usability and device compatibility. For example, mouse hover actions behave differently on mobile devices, as the primary action on these devices is touch. Therefore, use the trigger that best suits your needs.

  • mouseenter focusshows on hover, and also when the element receives keyboard focus with Tab. Hides when the hover ends or the focus moves away.
  • clickshows on click and stays until the next click, with the exact behavior set by Hide on click.
  • focusinshows when the element receives keyboard focus with Tab and stays while it keeps the focus. Hides when another element is focused.
  • mouseenter clickshows on hover or on click, and hides when the hover ends or on the next click.

Hide on click

dropdown

Sets the tooltip behavior when clicking the reference element for triggers that use the click event. For other trigger types, the behavior may not be as expected.

  • trueclicking the target shows the tooltip, and clicking it again, or anywhere else on the page, hides it.
  • falseclicking the target shows the tooltip and it stays visible.
  • toggleclicking the target switches between shown and hidden, and a click elsewhere on the page does not close it.

Touch mode

dropdown

Sets the tooltip display behavior on touch devices. If you are trying to test this on a desktop you probably won't be able to see the desired behavior since this property is targeted at mobile devices.

  • truekeeps the default touch behavior: a tap on the target shows the tooltip.
  • falseno tooltip on touch devices.
  • holda short press and hold on the target shows the tooltip.
  • hold long-pressonly a longer press and hold shows the tooltip.

The hold modes cannot be tested with a mouse: they wait for a touch gesture, so use a phone or the device emulation of your browser.

Disable tooltip?

yes/no

Disables the display of the tooltip. Ideal for use in cases where the tooltip needs to be conditionally disabled.

The tooltip is disabled, not removed: the target element and the layout stay exactly as they are, and nothing shows on hover or click until it is enabled again.

THEME 15

Theme type

dropdown

Sets the tooltip theme, which can be one of four predefined themes or a custom theme. All properties below can be configured in the custom theme. Only the custom theme follows color changes made by conditionals, such as a dark mode; the predefined themes come with fixed colors.

  • customopens every appearance property below, from background and border to font, padding and arrow.
  • lighta light theme, white background with a subtle shadow.
  • light-borderthe light theme with a visible border around the tooltip.
  • materiala darker background with an elevated shadow, in the Material Design register.
  • translucentsemi-transparent, with a glass-like look that blends with what is behind it.

The four ready themes ignore the properties below. Switch to custom to take control of background, border, radius, shadow, padding, font, text alignment and arrow.

Custom theme (tooltip box)

Background color

color

Sets the background color of the tooltip box.

Padding (box)

number

Sets the spacing (in pixels) between the tooltip box border and the content area inside it.

Border width

number

Sets the border thickness (in pixels) of the tooltip box.

Border color

color

Sets the border color of the tooltip box.

Border radius

number

Sets the border roundness (in pixels) of the tooltip box.

Boxshadow color

color

Sets the color of the shadow displayed around the tooltip box.

Boxshadow spread

number

Sets the spread (in pixels) of the shadow displayed around the tooltip box.

Apply glass effect?

yes/no

Applies a glass-like visual effect to the tooltip (the effect is only noticeable if the background color is transparent).

The glass effect blurs whatever shows through the tooltip, so it is only visible when the background color is transparent or semi-transparent.

Custom theme (tooltip arrow)

Arrow size increase (%)

dropdown

How much larger than its base size the arrow is drawn, in percent. 0 keeps the base size, and 50 draws the arrow 50% larger.

  • 0
  • 10
  • 20
  • 30
  • 40
  • 50
  • 60
  • 70
  • 80
  • 90
  • 100

Arrow color

color

Sets the color of the tooltip arrow.

Custom theme (tooltip content)

Padding (content)

number

Sets the spacing (in pixels) between the tooltip text and the inner edges of its content area.

Font size

number

Sets the tooltip text size (in pixels).

Font color

color

Sets the tooltip text color.

Text alignment

dropdown

Sets the horizontal alignment of the tooltip text.

  • center
  • left
  • right
  • justify

FAQ 9

Which elements can show a tooltip?

Any element that can carry an ID attribute: buttons, icons, inputs, images, text, shapes, groups, and elements inside repeating groups. The plugin attaches the tooltip to the element you name, so nothing about your existing layout has to change.

Do I need one Tooltip Master element per tooltip?

Yes. Each plugin element points at one Element ID at a time. Inside a repeating group, place the plugin element inside the cell and build the ID from the row, for example "tooltip-master-" plus the cell's index, to create a unique id per cell, so each cell carries its own tooltip instead of every one of them pointing at the first.

Can the tooltip hold a video, a map or an external page?

Yes. With Content type set to html you can put an iframe in the content, and Iframe fit mode decides whether the iframe shrinks into the tooltip, the tooltip expands around it, or it scrolls at its natural size. With bbcode, the youtube, vimeo, video and audio tags embed media without writing any HTML.

Is it safe to show content that comes from my users?

With plain text, yes: every tag is escaped and arrives as visible characters. With bbcode, yes: the HTML is escaped first and only the BBCode tags are turned into markup. With html the content is rendered as written, so sanitize it before it reaches the tooltip whenever it comes from a source you do not control.

Which BBCode tags are supported?

More than 30, covering text formatting (b, i, u, s, sub, sup, size, color, background, font), structure (h1 to h6, p, pre, list, quote, spoiler, center, left, right), links and media (url, img, gif, icon, audio, video, youtube, vimeo).

Does it work on touch devices?

Yes. Touch mode has four settings: the default tap, off, hold, and a longer press and hold. Because hover does not exist on a touch screen, pick the trigger action with the device in mind, and remember that a hold-based mode cannot be tested with a mouse on the desktop.

Can I keep the tooltip open to click something inside it?

Yes. Interactive content? lets the cursor move into the tooltip without closing it. Interactive border widens the invisible area around it, which is the spatial way to keep it open, and Interactive debounce delays the hiding, which is the temporal way. Both can be used together.

The tooltip is not appearing. What should I check?

Four things, in this order: the ID attribute option is enabled in Settings > General > Advanced options; the ID in Element ID matches the target exactly, including case; Tooltip content is not empty; and Disable tooltip? is unchecked. Also make sure only one element on the page carries that ID, because the plugin attaches to the first match.

Is advanced Bubble knowledge required?

No. Everything is set through visual properties in the editor, and every property starts with a working value. HTML and BBCode are optional: a plain text tooltip needs only an ID and a sentence.

Breaking changes 2

1.25.0 2026-11-03

Two options of the custom theme changed: the box shadow spread now takes any number, and the arrow size became a percentage increase over the base arrow. The tooltip keeps working after the update, but an arrow that was larger than the base size needs one pass.

  • Arrow size (theme_arrow_size) became Arrow size increase (%), with the options 0, 10, 20 and so on up to 100. 0 is still the base arrow; any other value draws it that much larger. The old options were 0 to 9, where each step was 10% larger.If you used 0, nothing changes. If you used 1 to 9, pick the value ten times larger: 3 becomes 30, 5 becomes 50.
  • Boxshadow spread (theme_boxshadow_spread) is now a number field instead of a dropdown, so it accepts any value and dynamic expressions. The default is still 8.If you had picked a spread other than 8, check the field and type the same number again.

NWD UI - Enhancer

This plugin is maintained by GCS Studios and is part of the NWD UI - Enhancer family, plugins that add behavior an element did not have, without replacing it. Each one attaches to something already on your page, such as a group, a popup, a repeating group, a button or an input, and changes how it responds, with no layout to redo, and is tested in real applications before release. See more plugins on the GCS Studios contributor page.