A simple approach is to set the internal text font-size to 0 , and then reset the pseudo-element font to its normal state to make it visible:
.is-content-visually-hidden { font-size: 0; } .icon__star::before { content: "*"; font-size: 32px; }
Demo: http://codepen.io/anon/pen/zxWQRX
However, a more flexible approach is to move the text to another range:
<i class="icon icon__star is-content-visually-hidden"> <span>star</span> </i>
and hide the span .
source share