3 tricks for adding texture to your text with CSS and SVG
Browser support
Predictably, some of the properties we’ll be using aren’t universally supported, meaning they will fail in browsers like IE and Firefox. The good news is that these properties will fail silently, meaning that these techniques are a progressive enhancement, and fine to use in sites.Clipping text using background-clip
The first option we’ll look at is the background-clip property. This property will define whether the background will be extended into the border or not. It allows the text of a defined element to clip an image.The HTML
Our markup is simply an h1 with the class bgClip:Clip Text
Now, let’s add the magic with CSS…The CSS
We’ll add texture to our text with an image of the night sky. We’ll also make sure that the text is rendered smoothly using font-smoothing. Note that for this to work the text color must be transparent, so we’ll also use text-fill-color:transparent..bgClip { background:url('../images/clouds.jpg'); background-repeat:repeat-x; background-position:0 0; font-size:200px; text-transform:uppercase; text-align:center; font-family:'Luckiest Guy'; color:transparent; -webkit-font-smoothing:antialiased; -webkit-background-clip:text; -moz-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; margin:0;Now we just want to add a little animation to make the background more enticing:
-webkit-animation:BackgroundAnimated 15s linear infinite; -moz-animation:BackgroundAnimated 15s linear infinite; -ms-animation:BackgroundAnimated 15s linear infinite; -o-animation:BackgroundAnimated 15s linear infinite; animation:BackgroundAnimated 15s linear infinite; } @keyframes BackgroundAnimated { from { background-position:0 0 } to { background-position:100% 0 } } @-webkit-keyframes BackgroundAnimated { from { background-position:0 0 } to { background-position:100% 0 } } @-ms-keyframes BackgroundAnimated {< from { background-position:0 0 } to { background-position:100% 0 } } @-moz-keyframes BackgroundAnimated { from { background-position:0 0 } to { background-position:100% 0 } }Here’s the result:
Clipping text using SVG
The next technique we’ll look at is SVG clipping. Similar to the CSS method above, SVG also allows you to clip text with images using the clipPath property. Usually the clipPath property contains shape attributes such as a circle or square, but you can also use text.The SVG
You’ll see that I use the HTML image element to clip the image.<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>Although I’m using a .jpg here, you can use other image formats, or even video.
The CSS
Now, all we have to do is use the clip-path property to apply the SVG as the image’s clip path:.svgClipped { -webkit-clip-path: url(#svgPath); clip-path: url(#svgPath); margin:0 auto; }Here’s the result:
Masking text using mask-image
The last technique we’re going to look at is texturizing text with mask-image. The basic functionality of this property is that it will clip the area of text that is visible based on opacity.The HTML
All we need is an h1 element wrapped in a div:Mask Text
The CSS
To mask the image with the text we’ll use the -webkit-mask-image to specify the image and we’ll also add a nice text-shadow for good measure. Finally, I want to ass some smooth hover effects to reveal the whole text on mouse-over (just because we can):#maskText h1 { font-size: 200px; font-family: 'Lilita One', sans-serif; color: #ffe400; text-shadow: 7px 7px 0px #34495e; text-transform: uppercase; text-align: center; margin: 0; display: block; -webkit-mask-image: url('../images/texture.png'); -webkit-transition:all 2s ease; -moz-transition:all 2s ease; -o-transition:all 2s ease; transition:all 2s ease; } #maskText h1:hover{ -webkit-mask-image: url('../images/texture-hover.png'); cursor: pointer; color: #ffe400; }Here’s the result:
Conclusion
Great! You just learned how to clip text on different ways. These properties will save you time and keep you out of Photoshop. More importantly, they’re dynamic, unlike a jpg. CSS and SVG have come a long way, and techniques like these will become standard over the next few years as browsers catch up.Samuel Norton
Sam Norton is a web designer and a front web developer with over 2 years of experience in the industry. Have a passion for designing detailed, creative and modern websites & graphics. He spend most of his time practically every day, experimenting with HTML, CSS and Wordpress.
Popular Posts
Read Next
Exciting New Tools for Designers, November 2023
We’ve got a mix of handy image helpers, useful design assets, and clever productivity tools, amongst other treats. Some…
The Dangers of Doomscrolling for Designers and How to Break Free
As a creative professional, navigating the digital realm is second nature to you. It’s normal to follow an endless…
By Louise North
From Image Adjustments to AI: Photoshop Through the Years
Remember when Merriam-Webster added Photoshop to the dictionary back in 2008? Want to learn how AI is changing design…
By Max Walton
3 Essential Design Trends, November 2023
In the season of giving thanks, we often think of comfort and tradition. These are common themes with each of our three…
30 Obsolete Technologies that will Perplex Post-2000s Kids
Remember the screech of dial-up internet? Hold fond memories of arcade machines? In this list, we’re condensing down 30…
15 Best New Fonts, October 2023
We’re entering the final quarter of 2023, and even in the pre-holiday lull, there are still plenty of fonts to get…
By Ben Moss
Progressive Web Apps (PWAs): Unlocking The Future of Mobile-First Web Development
There are over 5.4 billion mobile users today, meaning that over 68% of the population tap into an online business via…
The 12 Most Controversial Ad Campaigns of the 21st Century
How far would an organization be willing to go for the chance to generate a little extra buzz? In this list, we're…
By Robert Reeve
20 Best New Websites, October 2023
The Bento trend is still going strong: In some cases, we see this extend to the layout, but many more are picking…
Exciting New Tools for Designers, October 2023
This month, we have a whole bag of goodies for designers, developers, and designevelopers alike. (Yes, we did just make…
The 10 Most Successful Rebrands of All Time - Ranked
We’re all familiar with rebrands going wrong, but what happens when they go right? From McDonald’s health kick to…
By Max Walton
3 Essential Design Trends, October 2023
Every now and then, website design trends can leave you scratching your head. This month’s collection includes some of…