CSS Selection Color Generator
Generate the CSS for ::selection to customize the highlight color of selected text on your site. Pick background and text colors and copy the code.
CSS
—
Branding text selection with ::selection
When a user highlights text on your page — by dragging, double-clicking or hitting Ctrl/Cmd + A — the browser paints a system-default background behind the run of characters (blue on macOS, the accent color on Windows). The ::selection pseudo-element lets you override that paint and align it with your brand identity. The syntax is simple:
::selection {
background: #ff00de;
color: white;
}
Firefox historically required the vendor-prefixed ::-moz-selection. From Firefox 62 (2018) it accepts the unprefixed version, but adding both is still common for legacy support and is harmless.
What you can — and cannot — style
The W3C spec restricts ::selection to a small whitelist: background-color, color, text-shadow, text-decoration, caret-color and a few stroke/fill properties. You cannot change font-size, border, padding or apply a linear-gradient background — only a flat color. This is intentional: text reflow during selection would be confusing and expensive to repaint.
Scoped selection for code blocks and dark sections
You can scope ::selection per ancestor — Stripe uses a purple selection across the marketing site but switches to white-on-black inside their docs code blocks:
::selection { background: #635bff; color: #fff; }
.code-block ::selection { background: #fff; color: #000; }
The companion property caret-color sets the blinking cursor color inside inputs and contenteditable areas — pair it with your selection palette for cohesion.
Accessibility and dark mode
The selected text still needs to be readable. WCAG 1.4.3 requires a 4.5:1 contrast ratio between color and the new background — picking neon yellow on white passes legibility for some users but fails for everyone with low vision. For dark mode, wrap a second selector in @media (prefers-color-scheme: dark) and adjust the colors so they remain legible on the dark canvas.
Browser support and performance
Support is universal in every modern browser (Chrome, Firefox, Safari, Edge — even IE 9 implemented it). Performance impact is zero: the new colors only paint during an active selection. Print stylesheets do not need to override anything because selection state is not preserved on paper.
FAQ
Can I use different selection colors per section of the page? Yes. Selectors like article ::selection { background: gold } and footer ::selection { background: gray } coexist freely. When a selection drags across the boundary, each element paints with its own scoped rule.
Can I apply a gradient or image as the selection background? No. The spec only accepts a single solid color. Browsers ignore gradients and images on ::selection entirely.
Is ::selection with double colons the same as :selection? No. Only the double colon form is valid — the single-colon variant was never standardized and is silently ignored by every browser.
Why would I make the selected text invisible? Some sites set color: transparent on selection inside code samples to discourage copy-paste of API keys or to defeat naive scraping. It does not block determined users but raises the friction.
Related Tools
CSS Scroll Snap Generator
Generate CSS scroll-snap for carousels and galleries that stop on each item as you scroll. Pick the horizontal or vertical axis and copy the code.
CSS Checker Pattern Generator
Generate a checkerboard pattern in pure CSS using gradients, with no images. Adjust colors and size, preview it and copy the ready code for your site.
Munsell Color to Hex Sample Generator
Generates hex samples from Munsell notation (Hue Value/Chroma — e.g. 5R 4/14) used in soils, art and aesthetics.
CSS Clip-Path Star Generator
Generate a star-shaped CSS clip-path with any number of points you like. Create perfect stars for badges and seals and copy the code.
Split-Complementary Palette Generator
Generate a split-complementary palette from a base color — the base plus two colors beside its complement. A vibrant, harmonious scheme for design and branding.
color-scheme Meta
Build <meta name="color-scheme"> for light/dark hints.