Tippy.js

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

Library
npm
v6.3.7
12,240 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

Python
68%
Other

Baserow

Databases · No Code Platforms

6,012

Open-source no-code platform to build databases, apps, automations, and AI agents — self-hosted or cloud, with full data ownership.

View details
89
Repo Health
84
Technical
68
Dependency
Built with
Python 68%
JavaScript 16%
Vue 11%
Updated 5 days ago
Java
72%
Other

ByteChef

AI Agents · Automation

1,003

Unified open-source platform for AI agent orchestration and workflow automation with 180+ connectors, MCP support, and durable execution.

View details
85
Repo Health
82
Technical
67
Dependency
Built with
Java 72%
TypeScript 28%
Updated 5 days ago
TypeScript
84%
Apache 2.0

Continue

AI Code Assistants · AI Development · Automation

36,049

Open-source coding agent for VS Code, JetBrains, and CLI with support for 30+ LLM providers.

View details
73
Repo Health
88
Technical
62
Dependency
Built with
TypeScript 84%
Updated 5 days ago
TypeScript
92%
MIT

Dittofeed

Automation · Marketing

2,968

Open-source omni-channel customer engagement platform for automating transactional and marketing messages via email, SMS, WhatsApp, Slack, and mobile push.

View details
54
Repo Health
75
Technical
62
Dependency
Built with
TypeScript 92%
Updated 6 months ago
TypeScript
62%
Other

Flowise

AI Development · Automation · Developer Tools

55,490

Drag-and-drop visual builder for AI agents, RAG pipelines, and multi-agent systems—deploy anywhere in minutes.

View details
82
Repo Health
77
Technical
63
Dependency
Built with
TypeScript 62%
JavaScript 27%
Updated 1 months ago
Go
83%
MIT

Gitea

Developer Tools · Devops · Project Management

58,194

Self-hosted DevOps in a single Go binary — Git hosting, GitHub Actions-compatible CI/CD, and 30+ package registries without any SaaS dependency.

View details
93
Repo Health
79
Technical
64
Dependency
Built with
Go 83%
Updated 4 days ago
Ruby
67%
Other

GitLab

Developer Tools · Devops

24,552

The complete DevOps platform that unifies Git hosting, CI/CD, issue tracking, and security scanning into a single self-hostable application.

View details
87
Repo Health
86
Technical
67
Dependency
Built with
Ruby 67%
JavaScript 20%
Updated 4 days ago
TypeScript
67%
MIT

Hoppscotch

Developer Tools

80,529

A lightweight, offline-capable API development ecosystem for testing HTTP, GraphQL, WebSocket, MQTT, and SSE endpoints across web, desktop, and CLI.

View details
91
Repo Health
83
Technical
65
Dependency
Built with
TypeScript 67%
Vue 25%
Updated 6 days ago
TypeScript
61%
EPL-2.0

Huly Platform

Collaboration · Project Management · Team Chat

27,797

Open-source all-in-one workspace that replaces Linear, Jira, Slack, and Notion for product and engineering teams.

View details
90
Repo Health
86
Technical
62
Dependency
Built with
TypeScript 61%
Svelte 34%
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