SwiftUI Tooltip
  • August 27, 2025

This package provides you with an easy way to show tooltips over any SwiftUI view, since Apple does not provide one.

preview

Getting started


You can add this package to your project using Swift Package Manager. Enter following url when adding it to your project package dependencies:

https://github.com/quassum/SwiftUI-Tooltip.git

We are using semver for versioning, so we would recomment selecting “Up to next major relase” option for this package.

After you added the package, all you need to do is import it and you can add a tooltip to any SwiftUI View in that file!

Usage


Step 1

⭐️ Start this repo! ⭐️

Basic use case

As the first example, the Text view is provided as the tooltip content and it’s attached to the other Text view. Below you can see the example of code that is required to create the tooltip and the result you see on the screen.

Code:

import SwiftUITooltip

Text(“Say something nice…”)
.tooltip(.bottom) {
Text(“Something nice!”)
}

Result:

example 1

Controlling whether the tooltip is present

You can cantrol whether the tooltip is presented or not through the _ enabled: Binding<Bool> argument. Below you can see an example of how this would look like.

@State var tooltipVisible = false

Button(“Toggle tooltip”) {
self.tooltipVisible = !self.tooltipVisible
}

Text(“I’m the confusing text.”)
.tooltip(self.tooltipVisible) {
Text(“I’m the text explaining the confusing text.”)
}

Using custom configuration to add a jumping animation

Second example shows you how you can add jumping animation to the tooltip from the first example.

Code:

import SwiftUI
import SwiftUITooltip

struct SwiftUIView: View {
var tooltipConfig = DefaultTooltipConfig()

init() {
self.tooltipConfig.enableAnimation = true
self.tooltipConfig.animationOffset = 10
self.tooltipConfig.animationTime = 1
}

var body: some View {
Text(“Say something nice…”)
.tooltip(.bottom, config: tooltipConfig) {
Text(“Something nice!”)
}
}
}

 

Result:

example 2

Configuration Reference

Below you can see all the properties that you can set in the configuration.

Property Type Description
side TooltipSide Side of view that the tooltip should appear on
margin CGFloat Margin from the tooltip to the view it’s attached to
borderRadius CGFloat Rounded border control
borderWidth CGFloat Thickness of the border
borderColor Color Border color
backgroundColor Color Background color inside of the tooltip
contentPaddingLeft CGFloat Left padding inside of the tooltip
contentPaddingRight CGFloat Right padding inside of the tooltip
contentPaddingTop CGFloat Top padding inside of the tooltip
contentPaddingBottom CGFloat Bottom padding inside of the tooltip
showArrow Bool Whether to show or hide the arrow
arrowWidth CGFloat Width of the base of the triangle
arrowHeight CGFloat Height of the triangle
enableAnimation Bool Whether to bounce the tooltip or not
animationOffset CGFloat Delay between tooltip bouncing animations
animationTime Double How long should the tooltip bounce last

 

GitHub


View Github

YOU MIGHT ALSO LIKE...
SimpleToast for SwiftUI

SimpleToast is a simple, lightweight, flexible and easy to use library to show toasts / popup notifications inside iOS or ...

SSToastMessage

Create Toast Views with Minimal Effort in SwiftUI Using SSToastMessage. SSToastMessage enables you to effortlessly add toast notifications, alerts, and ...

ToastUI

A simple way to show toast in SwiftUI   Getting Started • Documentation • Change Log   

Popup View

Floaters Toasts Popups Sheets

Drops 💧

A µFramework for showing alerts like the one used when copying from pasteboard or connecting Apple pencil.