The caret-color property sets the color of the insertion caret — the blinking marker that shows where the next character will be typed or deleted.
It applies to focused editable text: text-like <input> types, <textarea>, and contenteditable elements. It is inherited. The initial value is auto, which usually matches the text color (currentColor).
Not the mouse cursor.
caret-color is only the text insertion caret. The mouse pointer is controlled by cursor.
Syntax
CSS Syntax
syntax.css
caret-color:auto | <color> | initial | inherit;
Any valid CSS color works: named colors, hex, rgb(), hsl(), transparent, or currentColor.
Target textarea. Multi-line fields use the same property.
Set a hex color.#2563eb makes a blue caret.
Focus the area. Click inside to see the caret blink.
Same idea for contenteditable. Editable paragraphs accept caret-color too.
Edge Cases & Pitfalls
If you do not see a caret, one of these is usually why.
focus
Caret needs focus
The insertion caret only appears while the editable field is focused. Click or tab into the control.
cursor
Do not confuse with cursor
cursor styles the mouse pointer. caret-color styles the text insertion caret only.
input
Not every input type has a caret
Text, email, search, tel, and password show a caret. Checkbox, radio, color, and date inputs generally do not.
a11y
transparent can hurt usability
Hiding the caret makes typing harder. Keep enough contrast against the field background.
animate
Animating from auto is discrete
Transitions from auto to a color do not interpolate smoothly; the change snaps at the midpoint.
Compatibility
Browser Support
caret-color is a browser UI property for editable text. Node.js, Deno, and Bun do not apply it.
✓ Baseline · Widely available
caret-color
Chrome 57+, Firefox 53+, Safari 11.1+, Edge 79+, Opera 44+. Widely available since January 2020.
98%Modern browsers
Google Chrome57+
Full
Mozilla Firefox53+
Full
Apple Safari11.1+
Full
Microsoft Edge79+
Full
Opera44+
Full
Samsung Internet7.0+
Full
Internet ExplorerNo
None
caret-colorWidely supported
Bottom line: Safe for modern browsers. Pair with a visible text color and enough contrast so the caret stays easy to find.
Remember
Key Takeaways
Role: color the blinking text insertion caret in editable fields.
Common values:auto and any CSS <color>.
Initial value:auto. Inherited. Needs focus to appear.
Not cursor: mouse pointer styling belongs to cursor, not caret-color.
One line:caret-color paints the blinking insertion caret — focus the field to see it.
Frequently Asked Questions
It sets the color of the insertion caret — the blinking text cursor — in focused editable fields such as text inputs, textareas, and contenteditable elements.
The initial value is auto. Browsers typically resolve that to the current text color (currentColor).
caret-color styles the blinking insertion point inside editable text. The cursor property styles the mouse pointer when you hover over an element.
It applies to text inputs (text, email, search, tel, password), textarea, and contenteditable elements. Date, checkbox, radio, and color inputs do not show a text caret.
Yes. caret-color: transparent hides the caret. Use that carefully — users often need a visible insertion point.
It is Baseline and widely available: Chrome 57+, Firefox 53+, Safari 11.1+, Edge 79+. It is a browser UI property, not a Node.js feature.