Tippy.js

The complete tooltip, popover, dropdown, and menu solution for the web.

Library
npm
v6.3.7
12,238 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
51 /100 Fair
Development Activity 0
Maintenance 44
Community 60
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
85 /100 Excellent
Architecture 84
Code Quality 85
Innovation 86
Learning Curve 80

Tippy.js is a lightweight, highly configurable JavaScript library for creating tooltips, popovers, dropdowns, and menus. Built on top of Popper, it handles the hard parts of overlay positioning, collision detection, and lifecycle management so you can attach rich, accessible floating UI to any element with a single function call.

Framework-agnostic and dependency-light, Tippy.js works with vanilla JavaScript or any framework, ships with polished default themes and animations, and exposes a plugin system for advanced behaviors like follow-cursor, sticky positioning, and singleton grouping.

What You Get

  • A single tippy() constructor that attaches tooltips, popovers, dropdowns, or menus to one or many elements at once
  • Popper-powered smart positioning with automatic flipping and collision avoidance
  • Prebuilt themes, animations, and CSS you can import and customize
  • A plugin architecture for follow-cursor, sticky, inline positioning, and animated fill behaviors
  • TypeScript type definitions and accessible defaults (ARIA attributes, keyboard and focus handling)

Common Use Cases

  • Adding descriptive tooltips to buttons, icons, and form fields
  • Building interactive popovers and dropdown menus triggered by click or hover
  • Creating context menus and rich HTML overlays anchored to page elements
  • Grouping many tooltips into a shared singleton for coordinated show/hide behavior

Under The Hood

Architecture — The public entry point in src/index.ts exposes a tippy() function that normalizes targets via getArrayOfElements, merges passed props with defaultProps, and delegates each element to createTippy (src/createTippy.ts, ~1145 lines) which is the core engine. createTippy builds the popper DOM through template.ts, wires per-instance state and lifecycle hooks, binds trigger listeners, and instantiates a Popper instance (@popperjs/core) to compute placement. Global listeners are set up once through bindGlobalEventListeners.ts, and add-ons (createSingleton, delegate) plus plugins (animateFill, followCursor, inlinePositioning, sticky) layer optional behavior over the base instance.

Tech Stack — Written in TypeScript and compiled with Babel and Rollup into CJS, ESM, and UMD bundles. Its sole runtime dependency is @popperjs/core (^2.9.0) for positioning. Styling is authored in SCSS (src/scss) with themes and animations compiled to distributable CSS. Tooling includes Jest with Puppeteer for DOM, integration, functional, and visual-regression tests, plus ESLint, Prettier, and bundlesize budgets (10 kB) enforced on the UMD bundles.

Code Quality — The codebase is cleanly modularized by concern (dom-utils, props, validation, template, plugins, addons) with internal-type separation (types-internal.ts) and dev-only validation guarded behind a __DEV__ flag that is stripped from production builds. Testing is thorough: unit suites cover utils, dom-utils, props, css, and validation, while integration and functional suites exercise createTippy, plugins, and add-ons, complemented by image-snapshot visual tests. Naming is descriptive and TypeScript types are exported for consumers.

API Design — The developer experience is deliberately minimal at the surface: a single tippy(targets, props) call covers the common case, with a large but well-documented props object for customization and a plugin array for opt-in advanced features. Sensible defaults, prebuilt themes, and clear TypeScript definitions keep boilerplate low, and the extensive official documentation site makes discovery of options straightforward.

Used by 36 apps in this directory

TypeScript
81%
AGPL 3.0

Postiz

Automation · Social Media

37,683

The agentic social media scheduler — AI-powered content creation, 33-platform posting, and team workflows, all self-hosted.

View details
92
Repo Health
70
Technical
63
Dependency
Built with
TypeScript 81%
JavaScript 11%
Updated 6 days ago
TypeScript
96%
Other

Refly

AI Development · Automation · No Code Platforms

7,537

Build deterministic, versioned agent skills from natural language—run them anywhere from Claude Code to Slack.

View details
68
Repo Health
76
Technical
63
Dependency
Built with
TypeScript 96%
Updated 1 weeks ago
TypeScript
96%
Other

superglue

AI Agents · Data Engineering · Developer Tools

2,066

superglue is an AI-agent-driven integration engine that turns plain-English descriptions of enterprise systems into production-grade API tools, ERP/CRM connectors, and data pipelines — self-hosted or cloud, Y Combinator-backed (W25).

View details
42
Repo Health
79
Technical
67
Dependency
Built with
TypeScript 96%
Updated 2 months ago
TypeScript
85%
Apache 2.0

superset

AI Code Assistants · AI Development

15,503

Orchestrate an army of AI coding agents—Claude Code, Codex, Gemini CLI, and more—running simultaneously in isolated git worktrees from a single Electron desktop app.

View details
86
Repo Health
80
Technical
64
Dependency
Built with
TypeScript 85%
Updated 5 days ago
Rust
93%
Other

Tabby

AI Code Assistants

33,924

Self-hosted AI coding assistant — run GitHub Copilot-grade code completion on your own hardware with no cloud dependency.

View details
55
Repo Health
78
Technical
61
Dependency
Built with
Rust 93%
Updated 4 months ago
TypeScript
98%
MIT

Tersa

AI Agents · AI Development

1,043

An open-source visual canvas for building AI workflows by connecting nodes across 35+ model providers with drag-and-drop simplicity.

View details
46
Repo Health
77
Technical
71
Dependency
Built with
TypeScript 98%
Updated 6 months ago
TypeScript
90%
AGPL 3.0

useSend

Developer Tools · Marketing

4,753

Self-hostable open source email platform built on Amazon SES with a full dashboard, SMTP relay, REST API, and multi-language SDKs.

View details
76
Repo Health
72
Technical
68
Dependency
Built with
TypeScript 90%
Updated 1 weeks ago
PHP
63%
AGPL 3.0

Vanguard Backup

Devops

37

Self-hosted backup automation for Ubuntu and Debian servers with S3 storage, SSH-based file and database backup, and multi-channel notifications.

View details
34
Repo Health
80
Technical
69
Dependency
Built with
PHP 63%
Blade 36%
Updated 11 months ago
Python
57%
Apache 2.0

Zulip

Team Chat

26,102

Topic-based team chat that brings the structure of email threads to real-time messaging, so distributed teams never lose context across hundreds of concurrent conversations.

View details
96
Repo Health
86
Technical
60
Dependency
Built with
Python 57%
TypeScript 19%
JavaScript 11%
Updated 6 days ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers