Skip to content

How to Create a Text Outline in CSS

Sometimes you need an outline around your text. A recent project required me to place white text on a multicolored image background, so giving that text a black outline was important for readability.

Should be easy, right? Just declare text-outline: 1px black solid;, and we’re done. Except text-outline doesn’t exist in CSS, and the thing that does, text-stroke, is basically only supported in Chrome. Uh-oh.

CSS Hacks to the Rescue: How to Make CSS Text Outlines

Luckily, there’s a very good CSS hack that gives you the effect you’re looking for, at least for 1px outlines. (It doesn’t work as well for 2px and thicker.) Here’s the Stack Overflow post that pointed me to truth.

For the code itself, if you want to give elements of class element a 1px black outline, that’s:

.element {
	text-shadow:
		-1px -1px 0 #000,
		1px -1px 0 #000,
		-1px 1px 0 #000,
		1px 1px 0 #000;
}

And that’s all there is to it! You now know how to create a CSS text outline.

Yay! 🎉 You made it to the end of the article!
Fred Meyer
Share:

7 Comments
Most Voted
Newest Oldest
Inline Feedbacks
View all comments
Beepasha Bhatia
July 3, 2020 5:53 am

Nicee Good work

Mike
April 15, 2020 12:41 am

This was very helpful, it finally made the text overlayed on the image I have readable!

Incrediblecast
January 21, 2020 10:56 am

Still works perfectly in 2020, thank you

awen hamed
November 6, 2019 2:47 am

excellent Useful… Thanks.

Andrea
October 25, 2019 12:13 pm

Much appreciated ! ?

Elle
May 25, 2018 7:51 pm

Brilliant thank you! 🙂

Julian V
May 1, 2018 11:21 pm

Thank you for this information. This worked like a charm.

Or start the conversation in our Facebook group for WordPress professionals. Find answers, share tips, and get help from other WordPress experts. Join now (it’s free)!