<svg xmlns="http://www.w3.org/2000/svg">
<!-- filterUnits is required to prevent clipping the blur outside the viewBox -->
<filter id="motion-blur-filter" filterUnits="userSpaceOnUse">
<!-- We only want horizontal blurring. x: 100, y: 0 -->
<feGaussianBlur stdDeviation="100 0"></feGaussianBlur>
</filter>
</svg>
<!-- We use a custom attribute to set the text that the pseudo element should display and blur. In this case, we use the first character of the word. -->
<span filter-content="S">Swoosh</span>
/* We’ll set some colors and center everything. */
body {
background: #4c268f;
color: #99eeb4;
height: 100vh;
text-align: center;
display: flex;
justify-content: center;
align-items: center;
}
/* We set the position to relative so that we can stack a blurred pseudo element on top of the original text */
span {
position: relative;
font-family: "Avenir Next", sans-serif;
font-weight: 900;
font-size: 64px;
text-transform: uppercase;
font-style: italic;
letter-spacing: 0.05em;
display: inline-block;
}
/* We create a pseudo element and blur it using the SVG filter. We’ll grab the content from the custom HTML attribute. */
span:before {
position: absolute;
left: 0;
top: 0;
content: attr(filter-content);
filter: url(#motion-blur-filter);
}
/* We hide the SVG filter element from the DOM as it would take up some space */
svg {
display: none;
}
View Compiled
This Pen doesn't use any external CSS resources.