CSS Tooltip Generator - Online Hover Popup Builder
Design a pure CSS tooltip with custom text, position (top/bottom/left/right), and arrow. Copy the clean code.
UD5 Toolkit
Explore the native Popover API — create tooltips, menus, modals & more using pure HTML attributes. No JavaScript required.
Click the button to toggle. Click outside or press Esc to close — all built into the browser.
<button popovertarget="my-popover">Toggle</button>
<div id="my-popover" popover="auto">
Hello! I'm a native popover.
</div>
A tooltip-style popover with custom CSS — dark background, rounded, with smooth animation.
<!-- HTML -->
<button popovertarget="tip">Hint</button>
<div id="tip" class="pop-tooltip" popover="auto">
Styled tooltip!
</div>
<!-- CSS -->
.pop-tooltip {
background: #2d3436; color: #fff;
border-radius: 8px; padding: 0.6rem 1rem;
}
[popover]:popover-open {
opacity: 1; transform: scale(1);
}
[popover]::backdrop {
background: rgba(0,0,0,0.25);
}
A clean dropdown menu built with Popover API — perfect for navigation or action menus.
<button popovertarget="menu">Menu</button>
<div id="menu" class="pop-menu" popover="auto">
<a href="#">Profile</a>
<a href="#">Settings</a>
<a href="#">Help</a>
<hr>
<a href="#">Logout</a>
</div>
<!-- CSS -->
.pop-menu { padding: 0.4rem 0; min-width: 180px; }
.pop-menu a { display: block; padding: 0.55rem 1.2rem; }
A confirmation dialog using Popover API. Includes action buttons — all declarative.
Are you sure? This action cannot be undone.
<button popovertarget="confirm">Delete</button>
<div id="confirm" class="pop-confirm" popover="auto">
<strong>Confirm Delete</strong>
<p>Are you sure?</p>
<button popovertarget="confirm"
popovertargetaction="hide">
Delete
</button>
<button popovertarget="confirm"
popovertargetaction="hide">
Cancel
</button>
</div>
A notification-style popover with a colored accent border. Great for alerts and toasts.
<button popovertarget="notify">Show Alert</button>
<div id="notify" class="pop-notify" popover="auto">
<strong>✅ Success!</strong>
<small>Your changes have been saved.</small>
</div>
<!-- CSS -->
.pop-notify {
border-left: 4px solid #10b981;
max-width: 300px;
}
A classic hover tooltip using zero JavaScript — no Popover API needed. Works in all browsers.
<!-- HTML -->
<span class="tooltip-wrap">
Hover me
<span class="tooltip">Pure CSS tooltip!</span>
</span>
<!-- CSS -->
.tooltip-wrap { position: relative; cursor: pointer; }
.tooltip {
position: absolute; bottom: calc(100% + 8px);
left: 50%; transform: translateX(-50%);
background: #2d3436; color: #fff; padding: 0.5rem;
border-radius: 6px; opacity: 0; pointer-events: none;
transition: opacity 0.18s;
}
.tooltip-wrap:hover .tooltip { opacity: 1; }
Multiple buttons targeting the same popover. Any trigger toggles it.
<button popovertarget="shared">Open</button>
<button popovertarget="shared">Also Opens</button>
<button popovertarget="shared"
popovertargetaction="hide">Close</button>
<div id="shared" popover="auto">
Shared popover content!
</div>
Smooth scale+fade animation using :popover-open and @starting-style.
[popover] {
opacity: 0;
transform: scale(0.95);
transition: opacity 0.18s, transform 0.18s,
overlay 0.18s allow-discrete,
display 0.18s allow-discrete;
}
[popover]:popover-open {
opacity: 1;
transform: scale(1);
}
@starting-style {
[popover]:popover-open {
opacity: 0;
transform: scale(0.95);
}
}
popover attribute and popovertarget attribute for declarative show/hide behavior, with built-in light dismiss (click outside to close), Esc key support, and top-layer rendering above all other content.
popover="auto": The browser manages the popover — it closes automatically when you click outside (light dismiss) or press Esc. Only one auto popover can be open at a time. Best for most use cases.popover="manual": You control show/hide via JavaScript. Multiple manual popovers can be open simultaneously. Useful for persistent tooltips, multi-step workflows, or programmatic control.
popover="auto": when a user clicks anywhere outside the popover (or presses Esc), the popover closes automatically. This is powered by an invisible ::backdrop layer that captures clicks. You can style this backdrop with CSS — for example, adding a semi-transparent overlay: [popover]::backdrop { background: rgba(0,0,0,0.3); }
popover="auto" + popovertarget for click-to-show tooltips with full accessibility.:hover pseudo-class with absolutely positioned elements for hover-triggered tooltips, which work in all browsers including older ones.aria-label or aria-labelledby where appropriate, and ensure sufficient color contrast.
:popover-open pseudo-class combined with CSS transitions. Set initial styles (e.g., opacity: 0; transform: scale(0.95);) on the [popover] selector, then override them in [popover]:popover-open. For enter animations, use @starting-style (Chrome 117+) to define the pre-open state. Include allow-discrete in transitions for smooth overlay behavior.
#my-popover { position-anchor: --trigger; top: anchor(bottom); }Design a pure CSS tooltip with custom text, position (top/bottom/left/right), and arrow. Copy the clean code.
Make your JavaScript code more readable with this online beautifier. Format and indent JS automatically. Works entirely in your browser, protecting your code privacy.
Paste any JavaScript snippet and get a ready‑to‑drag bookmarklet link. Minify and encode automatically. Pure client.
Apply user‑select: none, text, all and see how it affects selection. Copy the CSS snippet for your UI elements.
Write a JavaScript snippet and get a ready‑to‑drag bookmarklet link. With minification and encoding. Easy browser tools.
Calculate tips and split bills easily. Adjust tip percentage and number of people. Perfect for dining out. All computations happen on your device.
Set a short timer with a themed emoji animation (e.g., pizza cooking). A playful visual countdown.
Type JavaScript expressions and see output like a real browser console. Supports console.log, error, warn. Use for quick testing without DevTools.
Explore the new two‑value display syntax like `display: block flex`. See what each inner/outer pair does visually.
Animate elements as they enter and exit the viewport using view() timeline. Parallax and reveal effects without JS.
Paste a URL or HTML to detect known vulnerable JavaScript library versions. Quick security audit. Client‑side only.
Style a drop cap using the initial‑letter property. Set size and sink. Modern alternative to pseudo‑element hacks.
Style a drop cap using the initial‑letter property. Set size and sink. Modern alternative to pseudo‑element hacks.
A big button that triggers a colourful confetti cannon full‑screen. Use it to celebrate small wins. Pure joy.
Design a fully styled scrollbar with colors, width, and border radius. Get the CSS for Chrome and Firefox.
Test overscroll‑behavior: contain to prevent background scroll or pull‑to‑refresh. See the effect in a live demo.
Generate a horizontal Code‑128 barcode from any string. Download as PNG or SVG. Works offline. For inventory.
Play the classic Snake game inside your browser. Arrow keys to move, eat the apple, grow longer. High score tracked locally.
A visual guide to common copy‑editing and proofreading symbols. Click a mark to see its meaning. For writers.
Connect a game controller and see every button press, axis movement, and vibration test. Uses the Gamepad API.
Beautify and format your CSS stylesheets instantly. Organize, minify, or prettify CSS code for better readability. Processed securely on client-side.
Toggle OpenType features like liga, smcp, tnum, and see the text update. Support for variable fonts. Typography nerds.
Enter min and max font sizes and viewport widths to generate a perfect CSS clamp() expression. Fluid typography without media queries.
Choose label type and get the best technique (baking soda, steam, milk) to remove it intact.
Enter any date and instantly know which quarter it belongs to. Also shows fiscal quarter if start month set.
Write a message and set a future date. It will be hidden until that day. All stored locally with countdown.
Select wood species and plank width to get the recommended cleat spacing and pattern. Ensure a squeak‑free installation.
Pomodoro timer that saves completed sessions to localStorage. View daily/weekly stats. Boost productivity with data.
Add player names and tap +/- to track scores. Custom starting points. Works for any game.
Define min and max font sizes and viewport widths. Generate a complete fluid type scale using CSS clamp() for all headings.