Free Online CSS Tooltip Generator with No JavaScript
Build a tooltip with no JavaScript, using a data-tip attribute with the before and after pseudo-elements. Choose the side, offset, arrow size, background, text colour, radius, padding, maximum width, font size and the fade delay and duration. The output covers hover and keyboard focus.
Hover the button, then press Tab to reach it with the keyboard. Both show the tooltip, because the generated CSS writes hover and focus-visible.
Enjoying WizTools123? Help keep our server infrastructure 100% free and open for everyone.
How to Build a CSS Tooltip
A few steps, and nothing is uploaded.
What to Know About CSS Tooltips
Including the accessibility problem you have to solve yourself.
::before is not reliably announced, and a tooltip that only appears on :hover never appears for someone who does not use a pointer. The trigger has to be focusable, which means a <button> or a link rather than a <span>, and the same text has to reach assistive technology another way. This tool writes :focus-visible beside :hover every time and puts an aria-describedby note in the output, but wiring that attribute to a real element is your job.
overflow: hidden, overflow: auto or a transform will cut it off or trap it. This is the main limit of the CSS-only approach and there is no way around it in CSS alone. If your tooltip lives inside a scrolling panel or a card with hidden overflow, you need a JavaScript tooltip that renders the bubble at the top of the document instead.
Key Features & Capabilities
What this tool does, and what it deliberately does not.
About the CSS Tooltip Generator
A tooltip built from two pseudo-elements and one attribute is one of the tidiest things you can do with CSS. The text comes from content: attr(data-tip), the bubble is ::before, the arrow is ::after drawn with a border trick, and the whole thing costs nothing to load. Written once, it works for every hint on the site.
This page applies the generated CSS to a real button through a stylesheet in the document, which is the only honest way to preview a pseudo-element. A drawn mock-up cannot tell you whether the arrow lines up, whether the delay feels right or whether the bubble is clipped. Here you hover the button and the actual rule runs, and you can tab to it and watch the focus path behave the same way.
The part that needed a decision was accessibility. A CSS-only tooltip is genuinely not accessible on its own, and it would be easy to write a generator that never mentions that. Instead the tool always emits :focus-visible next to :hover, so keyboard users at least see the bubble, and it always writes the aria-describedby reminder into the output, because the announcement has to come from real markup rather than generated content.
Frequently Asked Questions
Screen readers, clipping, touch screens and long text.