initial‑letter CSS Playground - Online Drop Caps
Style a drop cap using the initial‑letter property. Set size and sink. Modern alternative to pseudo‑element hacks.
UD5 Toolkit
Interactively explore and test the CSS user-select property.
Control how users select text — disable selection, enable one-click select-all, and more.
user-select: none.
/* Apply to target element */
-webkit-user-select: auto;
-moz-user-select: auto;
-ms-user-select: auto;
user-select: auto;
Always include vendor prefixes for maximum cross-browser compatibility.
Stop users from accidentally selecting button labels during rapid clicking.
Make code blocks fully selectable with a single click for easy copying.
Allow selection in specific child elements even when the parent disables it.
| Browser | auto | text | none | all | Prefix Needed |
|---|---|---|---|---|---|
| Chrome 54+ | ✓ | ✓ | ✓ | ✓ | -webkit- |
| Firefox 69+ | ✓ | ✓ | ✓ | ✓ | -moz- |
| Safari 16+ | ✓ | ✓ | ✓ | ✓ | -webkit- |
| Edge 79+ | ✓ | ✓ | ✓ | ✓ | -ms- (legacy) |
| iOS Safari 16+ | ✓ | ✓ | ✓ | ✓ | -webkit- |
| Android Chrome | ✓ | ✓ | ✓ | ✓ | -webkit- |
Data sourced from MDN & Can I Use. Always test in your target browsers.
user-select CSS property controls whether and how users can select text within an element. It determines if text can be highlighted, copied, or interacted with via cursor selection. This property is especially useful for improving UX on interactive elements like buttons, drag-and-drop interfaces, code snippets, and any scenario where accidental text selection could degrade the experience. Supported values include auto (browser default), text (selection enabled), none (selection disabled), and all (one-click select-all).
user-select: none; along with browser vendor prefixes for full coverage. The complete CSS rule is:-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;user-select: all makes the entire text content of an element selectable in a single action. When a user starts selecting anywhere inside the element, the browser automatically expands the selection to encompass all text within that element. This is ideal for:user-select: none — Only prevents text selection. The element still receives clicks, hover states, focus, and all other pointer interactions. It's purely about text highlighting.pointer-events: none — Makes the element completely transparent to mouse/touch events. Clicks pass through to elements behind it. The element won't receive hover, focus, or any interaction. Text inside may still be selectable if the selection starts from a neighboring element.user-select: none for buttons and UI elements. Use pointer-events: none for decorative overlays or when you need clicks to pass through.
user-select: none, all child elements inherit this behavior. To re-enable selection for specific children, apply user-select: text (with prefixes) to those child elements:
.unselectable-card { user-select: none; }
.unselectable-card .copyable-content { user-select: text; }
user-select works on mobile browsers including iOS Safari and Android Chrome. However, mobile behavior has some nuances:user-select: none prevents the text selection popup from appearing.-webkit- prefix since iOS 16.-webkit- prefix.all value on mobile: A tap or long-press within the element should select all text, though behavior may vary slightly across browsers.
-webkit-user-select: <value>; /* Chrome, Safari, Opera, Edge */
-moz-user-select: <value>; /* Firefox */
-ms-user-select: <value>; /* Internet Explorer / legacy Edge */
user-select: <value>; /* Standard syntax */
-ms- prefix is largely unnecessary for modern browsers, but it's still recommended for legacy Edge (versions 12-18) and Internet Explorer support. If you don't need IE/legacy Edge support, you can safely omit the -ms- prefix.
user-select: none only prevents visual text selection via cursor/touch. It does not prevent determined users from copying content through other methods:user-select: contain was part of an early draft of the CSS UI Level 4 specification. The idea was that selection would be confined to the element's boundary — you couldn't accidentally extend selection into neighboring elements. However, this value was removed from the specification and is not supported by any modern browser. The current valid values are auto, text, none, and all. If you encounter code using contain, it's outdated and should be replaced with one of the standard values.
user-select is a discrete property — it has distinct, non-interpolable values. You cannot smoothly transition or animate between none and text because there are no intermediate states. If you need a visual transition effect (e.g., fading in selectable text), consider animating other properties like opacity, color, or using CSS transitions on a wrapper element while toggling user-select instantly via JavaScript at the appropriate moment.
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.
Convert any text to upside down (flipped) characters using Unicode mappings. Copy and paste to social media. 100% local, no data sent.
Design a layout where nested grids share track sizes with their parent via subgrid. Copy the complete CSS.
Paste your CSS and see warnings for properties that have limited browser support. Links to CanIUse. Modernize safely.
Format your text into a classic newspaper layout with multiple justified columns. Ready to print or PDF. Local.
Create complex linear gradients with any number of color stops, exact angles, and length units. Live preview and CSS code.
Drop a PDF and count the total words, characters, and pages. Text extraction is done locally. Privacy‑friendly.
Add a repeating diagonal text watermark to your images. Adjust opacity, font, and color. Protect your photos locally.
Style underlines, overlines, and strike-throughs with colors, wavy styles, and thickness. Modern CSS text‑decoration.
Turn a photo into a high‑contrast ASCII art using only standard text characters. Adjust brightness and character set. Works offline.
Paste a sentence and see each word tagged with its part of speech (noun, verb, adjective). Local rule‑based analysis.
Design a button or card that glows on hover. Adjust shadow color, spread, and transition. Copy the CSS. Rich UI.
Paste text and see a sorted count of all emojis used. Find your most‑used emoji. Fun analytics. All local.
Create a realistic letterpress (debossed) text effect using CSS text‑shadow and background. Adjust depth and light direction. Copy code.
Generate a subtle noise/grain texture as a CSS background pattern. Adjust opacity and size. For that film look.
Upload multiple text files and concatenate them into one, with optional separators. No upload; processed instantly.
Create a customizable checkerboard or grid background using pure CSS gradients. Adjust cell size and colors. Copy the code.
Create a custom HTML/CSS progress bar with percentage, colors, and animation. Copy the code. Modern UI element.
Design a realistic neon sign text with multiple layers of glow. Copy the CSS and HTML. Perfect for headers.
A replica of the famous Flexbox Froggy game: solve alignment puzzles by writing CSS. Progress saved locally. Fun frontend learning.
Fetch a website's CSS and extract :root custom properties (‑‑color) to reveal its design token palette. For learning and inspiration.
Extract selectable text from a PDF using the browser's built‑in PDF rendering. Copy or download as TXT. No upload, fully private.
Enter Braille dot numbers (1‑6) or paste Unicode Braille to decode into English text. Companion to text‑to‑Braille.
Generate a QR code with a custom text label below or above. Perfect for printed signs. All generated locally as a single image.
Browse and search all Font Awesome 6 icons with preview, class name, and unicode. Copy the HTML snippet. Perfect for web developers.
Write upside down text using Unicode flipped characters. Copy and paste to surprise friends. Completely frontend and instant.
A complete, searchable list of all 140+ named HTML/CSS colors with their hex codes and color previews. Click to copy code. Essential web reference.
Deep-dive into text with detailed character and letter frequency analysis. Supports multiple languages and includes whitespace control. Fast and private.
Count words, characters, sentences, and paragraphs instantly. Analyze text density and reading time. Secure client-side processing for your content privacy.